Install
One binary, no runtime dependencies. The client submits jobs; the server holds the databases.
Client
The client is a single Rust binary and only needs itself:
$ curl -fsSL https://snapshotdb.io/install.sh | shPublished binaries support macOS (arm64, x86_64) and Linux (x86_64). The installer verifies the download checksum. For other Linux architectures, build from source.
SNAPSHOTDB_SERVER and SNAPSHOTDB_TOKEN before issuing database commands. GitHub sign-in does not replace your server access token.Server engine binaries
Engines run on the server, so their binaries must be on the server’s PATH. Only install the engines you branch.
| Engine | Binaries on the server PATH |
|---|---|
| Postgres | pg_ctl initdb psql pg_dump pg_dumpall |
| MySQL | mysqld mysql mysqldump |
| MongoDB | mongod mongosh + mongodump mongorestore for sync |
| SQLite | Bundled with SnapshotDB; no separate SQLite runtime needed. |
Filesystem
Copy-on-write cloning is cp -c (clonefile) on macOS/APFS and cp --reflink=always on Linux (Btrfs, XFS with reflink, or bcachefs). Linux refuses clones when reflinks are unavailable. macOS needs APFS for copy-on-write; other macOS filesystems may copy bytes. Point SNAPSHOTDB_HOME at a directory on a reflink-capable volume.
Restore branches after reboot
Run snapshotdb serve under your service manager. Starting the server restores branch proxies and restarts synced roots. Linux systemd units are included under deploy/ in the repository.