
Versipellis (versi) is a versatile, scalable tool for transferring and transforming data reliably across services, networks, protocols and formats, without altering the data itself.
It is an easy-to-use adapter and conduit around data pipelines, sources, and sinks. It can move and restructure data of any shape or size, with adjustable security in transit and at rest - while maintaining strong safeguards against corruption and loss, or latency and crashes under heavy load.
In other words: “We should take all this data and push it somewhere else!”
The primary design principles of this project are: ease of use, efficiency at scale, security, low footprint, and maintainability.
https://github.com/daabr/versipellis/pkgs/container/versipellis
Command line example:
docker run -d --name my-versi-container \
-v $HOME/versi/config:/app/config -v $HOME/versi/data:/app/data \
ghcr.io/daabr/versipellis:latest
/app/config - app and database configuration files, TLS certificates/app/data - dead-letter queue (data that was received but not sent)https://github.com/daabr/versipellis/releases/latest
Required Go version: 1.27
Command line:
CGO_ENABLED=0 go build ./cmd/versi && ./versi -h
Or:
CGO_ENABLED=1 go build -tags=odbc ./cmd/versi && ./versi -h
CGO_ENABLED=1 - optional, needed only for Oracle Database and unixODBC-tags=odbc - optional, needed only for unixODBCidentity (none), gzipSupported SQL-based databases: