# Restic
Restic is a modern backup program. Single static [[Go]] binary, encrypted-by-default, content-addressable storage with deduplication, runs on Linux, BSD, macOS and Windows.
## Key Features
- **Encrypted by default** — AES-256 in CTR mode + Poly1305-AES MAC. Repository password is required; no plaintext metadata.
- **Deduplication** — content-defined chunking (Rabin fingerprinting). Identical chunks are stored once across all snapshots and hosts using the same repo.
- **Incremental** — only new/changed chunks are uploaded. First backup is slow; subsequent ones are very fast.
- **Snapshots** — each backup is an immutable snapshot. Easy mount via `restic mount` (FUSE) for browse/restore.
- **Verification** — `restic check` validates repo integrity; `--read-data` re-hashes all chunks.
- **No server needed** — pushes directly to the chosen backend.
## Storage Backends
- Local filesystem / SFTP
- Amazon S3 (and any S3-compatible: MinIO, Backblaze B2, Wasabi, Cloudflare R2…)
- Google Cloud Storage, Azure Blob Storage
- Backblaze B2 native
- OpenStack Swift
- rclone (gateway to dozens more: Dropbox, Google Drive, OneDrive, etc.)
- REST server (`rest-server`)
## Typical Workflow
```bash
restic init --repo /path/or/url # create repo (prompts for password)
restic -r REPO backup ~/Documents # take a snapshot
restic -r REPO snapshots # list snapshots
restic -r REPO restore SNAPSHOT --target /tmp/r
restic -r REPO forget --keep-daily 7 --keep-weekly 4 --prune
restic -r REPO check # integrity check
```
## Project
- **License**: BSD 2-Clause
- **Language**: [[Go]]
- **Status**: pre-1.0, but production-grade and stable; backward compatibility commitment for repo format
## References
- Official website: https://restic.net/
- Documentation: https://restic.readthedocs.io/
- GitHub repo: https://github.com/restic/restic
- REST server backend: https://github.com/restic/rest-server
- Forum: https://forum.restic.net/
## Related
- [[Backrest]]
- [[Borg]]
- [[Go]]
- [[How I synchronize and backup my Obsidian notes]]