restic
In-depth entryby restic project (Alexander Neumann and contributors) · CLI tool
Encrypted, deduplicating backup program written in Go that stores snapshots in local, SFTP, S3-compatible and many cloud backends
Overview
restic is an open-source backup tool, written in Go and licensed under BSD-2-Clause, that saves directory snapshots into a repository where every file is split into content-defined chunks, deduplicated and encrypted before leaving the machine. The repository format is independent of the backend, so the same commands work against a local disk, an SFTP server, S3-compatible object storage (including MinIO and Backblaze B2), Azure, Google Cloud Storage, the project's own rest-server, or any of the dozens of providers reachable through rclone.
Typical use is a scheduled restic backup of selected paths followed by restic forget --prune with a retention policy, and occasional restic check runs to verify integrity. Snapshots can be listed, diffed, restored partially or mounted as a read-only FUSE filesystem for browsing. Because encryption and deduplication happen client-side, the storage provider never sees plaintext, and backing up several machines into one repository shares identical chunks. Wrappers such as resticprofile or autorestic add configuration files and scheduling, and restic runs on macOS, Linux, Windows and BSD as a single static binary.
Its constraints: there is no server-side component or central scheduler, so each client needs its own cron, launchd or systemd timer; pruning and checking large repositories take time and memory; compression was added relatively recently (repository format v2) and must be enabled; and repository-level locking makes concurrent operations from several hosts something to plan for.
Capabilities
- Client-side AES-256 encryption with authenticated chunks
- Content-defined chunking and deduplication across snapshots and hosts
- Backends: local, SFTP, S3-compatible, Azure, GCS, rest-server and rclone
- Retention policies with forget and prune
- Integrity verification with check, including data re-reading
- Partial restores, snapshot diffs and FUSE mount for browsing
- Optional compression in repository format v2
Typical workflows
- Nightly encrypted backup of a workstation to S3-compatible storage
- Back up several servers into one deduplicated repository over SFTP
- Browse and restore a single file from a past snapshot
- Verify repository health on a schedule
Strengths
- Single static binary on all major platforms
- Storage-agnostic repository format
- Strong default encryption with no plaintext at rest remotely
- Permissive BSD license and active maintenance
Limitations
- No built-in scheduler or server; relies on external timers and wrappers
- Prune and check can be slow on very large repositories
- Repository locks complicate concurrent access from many hosts
- Compression must be enabled and only applies to format v2 repositories
Prerequisites
- restic binary on each client
- A storage target (disk, SFTP host, object storage or rclone remote)
Who it is for
- Individuals and homelab users
- System administrators backing up small fleets
- Researchers protecting data on workstations and servers
Alternatives & comparison
BorgBackup offers the same encrypted, deduplicated model with mature compression and is often faster on local or SSH targets, but it requires Borg on the remote side for best performance and has no native object-storage backends in its stable series. rclone is a sync and transfer tool rather than a snapshotting backup program; it is commonly used as a backend for restic and for one-way mirrors where versioning is not needed.
- BorgBackup
Deduplicating backup archiver with compression and authenticated encryption that stores repositories on local disks or remote hosts over SSH
Open sourceOpen source - rclone
Command-line program to sync, copy, mount and serve files across dozens of cloud storage providers and protocols, with optional client-side encryption
Open sourceOpen source
Sources & verification
Primary sources consulted for this record. Claims are tied to the fields each source supports; the automated link checker re-verifies every URL on a schedule.
- Licenserestic LICENSE (BSD 2-Clause)checked Nov 1, 2026
https://github.com/restic/restic/blob/master/LICENSE
Supports: license_spdx, source_model
- Official documentationrestic documentationchecked Nov 1, 2026
https://restic.readthedocs.io/en/stable
Supports: capabilities, integrations, workflows, limitations
- Official sitechecked Nov 1, 2026
- Confidence
- High
- Reviewed
- Nov 1, 2026
- Links
- Verified · Nov 2, 2026
Spotted an error?
More in Backup & recovery
MinIO (AIStor)
MinIO, Inc. · Backup & recovery
S3-compatible object storage server; the AGPL community edition was archived in April 2026 and succeeded by MinIO's AIStor Free and AIStor Enterprise editions