Getting started

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/anybranch

Or download a release binary for macOS (arm64, x86_64) or Linux (x86_64, aarch64) from the Releases page.

Note: the client/server split is on 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.

EngineBinaries on the server PATH
Postgrespg_ctl initdb psql pg_dump pg_dumpall
MySQLmysqld mysql mysqldump
MongoDBmongod mongosh + mongodump mongorestore for sync
SQLitethe 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 install

Installs 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.