restic is a fast, secure, and efficient backup program written in Go. It provides a command-line interface with subcommands for creating, restoring, managing, and verifying backups. The architecture is modular: a core repository layer handles encryption (AES-256-GCM), content-defined chunking for deduplication, compression (zstd), and pack-file storage. Multiple storage backends are supported via a common interface, including local filesystem, SFTP, S3, Azure Blob, Google Cloud Storage, Backblaze B2, OpenStack Swift, and rclone. The codebase is production-grade with extensive unit and integration tests, a FUSE mount for browsing snapshots, and a self-update mechanism. It is actively maintained with frequent releases and a large community.
bees (Best-Effort Extent-Same) is a specialized C++ application designed for userspace deduplication on the Btrfs filesystem. It operates as both a CLI tool and a systemd daemon (beesd), scanning filesystem extents to identify duplicate blocks and reclaim space using Btrfs-specific ioctls like BTRFS_IOC_FILE_EXTENT_SAME. The architecture is modular, separating low-level kernel interaction (lib/fs.cc), hash table management (src/bees-hash.cc), and task scheduling (include/crucible/task.h). It prioritizes memory efficiency and incremental scanning to minimize downtime on large filesystems. The system relies heavily on Linux kernel internals, specifically Btrfs tree structures and extent metadata. It implements a custom memory-mapped hash table (BeesHashTable) to persist fingerprint data across restarts, allowing incremental deduplication without rescanning the entire filesystem. Concurrency is managed via a custom TaskMaster that adjusts worker thread counts based on system load, preventing I/O saturation during deduplication operations. While the code demonstrates high craftsmanship in system programming, it carries significant technical debt risks due to its tight coupling with volatile kernel APIs. The project maintains a robust test suite for its utility libraries but relies on integration testing for the core deduplication logic. It is a mature tool for Btrfs administrators but requires careful maintenance as kernel internals evolve.