Skip to main content

History of Restic

Restic is a modern backup program that has become the de-facto standard for secure, deduplicated backups on Linux and Unix-like systems. It was designed from the ground up to be easy to use, fast, and secure by default.

Origins

Restic was created by Alexander Neumann (also known as fd0 on GitHub and IRC).

The project began in 2014. At the time, existing open-source backup solutions often forced users to choose between two imperfect worlds:

  • Simple but inefficient: Tools like tar or rsync that were easy to use but lacked deduplication or encryption.
  • Powerful but complex: Enterprise tools (like Bacula or Amanda) or early deduplicating tools (like Duplicity) that were difficult to set up, had complex dependencies, or suffered from performance issues with large datasets.

Alexander's goal was to create a tool that was:

  1. Easy: A single binary with no dependencies.
  2. Fast: Limit CPU usage and support parallel operations.
  3. Verifiable: Able to detect bit rot and data corruption.
  4. Secure: Encryption is mandatory, not optional.
  5. Efficient: Deduplication based on content (CDC), not timestamps.

The Name

The name "restic" is a play on the word rest, implying that once your backups are done, you can "rest" easy knowing your data is safe. It is also short, unique, and easy to type.

Development Milestones

  • 2014: Initial commits and proof of concept. Use of Content-Defined Chunking (CDC) established the foundation for its deduplication engine.
  • 2015: First public releases. Support for SFTP and S3 backends added, making it cloud-native early on.
  • 2018 (v0.9.0): Native support for Azure and Google Cloud Storage.
  • 2022 (v0.14.0): Introduction of Repository Format V2, which added support for Compression (Zstandard). This was a major community request for nearly 8 years.
  • 2023 (v0.16.0): Performance improvements and the ability to retry locked repositories.

Is Restic Maintained?

Yes, actively.

Restic is one of the most active backup projects in the open-source ecosystem.

  • Maintainers: The project is maintained by a core team of developers, including Alexander Neumann and Michael Eischer (MichaelEischer), who has been driving much of the recent performance optimization work.
  • Community: It has over 20,000 stars on GitHub and hundreds of contributors.
  • Release Cycle: New versions are released regularly (typically every few months) with bug fixes, performance improvements, and new features.

Comparisons to Predecessors

| Era | Tool | Limitation Restic Solved | | : | : | : | | 1990s | tar / cpIO | No deduplication; full backups took massive space. | | 1996 | rsync | Great for mirroring, but poor for keeping long-term history (no snapshots). | | 2002 | Duplicity | Added encryption/S3, but relied on "chains" (Full -> Inc -> Inc). If one incremental corrupted, the whole chain broke. Restic has no chains; every snapshot is independent. | | 2010 | Attic / Borg | Excellent deduplication, but Borg (a fork of Attic) required a binary on the server side for speed and didn't support S3 natively. Restic is a single binary that speaks S3 natively. |

Why It Matters Today

In the modern DevOps and Cloud era, Restic fits perfectly because:

  1. It's a single binary: You can curl it into a container or a CI/CD pipeline in seconds.
  2. It speaks Cloud: It writes directly to object storage (S3, Minio, B2, R2) without needing a local staging disk.
  3. It's Encrypted: You can push backups to an untrusted public cloud bucket safely.