bup is a free open-source backup program built on git's packfile format. See how its rolling-checksum deduplication handles VM images and huge datasets.
At its core, bup takes any stream of data - a single file, a directory tree, or piped input - and breaks it into variable-length chunks using a rolling checksum algorithm similar to the one rsync uses. Because chunk boundaries are determined by the content itself rather than fixed offsets, small changes to a large file only produce a handful of changed chunks rather than an entirely new copy, which is what makes bup so effective at incremental backups of things like virtual machine disk images or growing log files.
Those chunks are stored using git's packfile format, but bup deliberately skips the parts of git's workflow that would normally slow it down at scale: there is no separate garbage-collection pass and no repacking step. Chunks are written straight into packfiles as the backup runs, so performance stays predictable even as the total amount of stored data climbs into the hundreds of gigabytes. The result is a tool that borrows git's proven, content-addressed storage model while removing the parts of git that were never designed for very large binary data.
bup is popular among Linux and BSD system administrators, self-hosters, and developers who need to back up things that plain git handles poorly - most notably virtual machine images, database dumps, and other large binary files that change incrementally over time. Because it deduplicates both within and across backup runs, and even across files that were never explicitly linked together, bup can dramatically reduce the storage footprint of repeated backups compared with naive copy-based approaches.
Compared with commercial backup suites, bup's appeal is its simplicity, transparency, and cost: it is entirely free, has no vendor lock-in, and its storage format is open and git-compatible. Compared with plain rsync-based backup scripts, bup adds real deduplication and a structured, addressable history of backups. It is not, however, aimed at non-technical users - there is no graphical interface, and restoring data requires comfort with command-line tools and git-like concepts.
bup continues to receive updates, with version 0.33.x being a recent release and continuous integration running across Debian, FreeBSD, Ubuntu, and macOS. Its contribution model is intentionally low-friction but old-school: rather than routing changes exclusively through GitHub pull requests, the project asks contributors to discuss problems and patches on its mailing list, reflecting its long history as a community-maintained tool rather than a company product.
The tradeoffs are what you would expect from a mature, volunteer-driven open-source project: there is no official cloud backend, no GUI, and no paid support tier, so teams that adopt bup are responsible for their own backup destinations, scheduling, and monitoring. For users who are comfortable with that model, bup remains one of the more storage-efficient and technically elegant options for backing up large, frequently changing datasets.
bup is used to create efficient, deduplicated backups, especially of large or frequently changing files like virtual machine images, database dumps, and server data, where its git packfile-based storage and chunk-level deduplication save significant space and time.
Yes. bup is completely free and open-source software, distributed primarily under the LGPL version 2 license, with a small number of files under a separate BSD-style license.
bup was created by developer Avery Pennarun, who is also known for other open-source projects such as sshuttle and git-subtree, and later for co-founding the networking company Tailscale. Development of bup began around 2010.
bup uses git's packfile format for storage but changes how data is written: it splits files into content-defined chunks using a rolling checksum and writes packfiles directly, without git's usual garbage-collection and repacking steps, making it far more efficient for very large files than using git directly.
bup is primarily built and tested for Linux, BSD, and macOS. Native Windows support is not a core focus of the project, so Windows users typically rely on WSL or similar compatibility layers.
Yes, this is one of bup's primary use cases. Its rolling-checksum chunking and deduplication are specifically well suited to large, incrementally changing files like VM disk images.
bup itself does not provide built-in encryption of backup data at rest; users who need encryption typically layer it on with an encrypted filesystem, transport-level encryption over SSH, or a separate encryption tool.
Files can be restored using bup's restore command, or by mounting a bup repository as a browsable filesystem via its FUSE support and copying files out directly.