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:
$ cargo install --git https://github.com/GitHoobar/anybranchOr download a release binary for macOS (arm64, x86_64) or Linux (x86_64, aarch64) from the Releases page.
main and unreleased; the v0.3.0 release binaries still use local storage. Build from source for the server mode described here.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 | the stdlib sqlite3 is enough |
Filesystem
Copy-on-write cloning is cp -c (clonefile) on macOS/APFS and cp --reflink=always on Linux (Btrfs, XFS with reflink, or bcachefs). On a filesystem without reflink support, branches fall back to full byte copies, so branch storage is no longer free. Point ANYBRANCH_HOME at a directory on a reflink-capable volume.
Optional: restore branches at login
$ anybranch service installInstalls a launchd agent (macOS) or a systemd user unit (Linux) that runs anybranch up after a reboot, restoring every branch’s proxy and restarting synced roots.