# restic/restic

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/restic-restic).**

32,318 stars · 1,717 forks · Go · bsd-2-clause

## Links

- GitHub: https://github.com/restic/restic
- Homepage: https://restic.net
- awesome-repositories: https://awesome-repositories.com/repository/restic-restic.md

## Topics

`backup` `dedupe` `deduplication` `go` `restic` `secure-by-default`

## Description

This project is a command-line utility designed for secure, content-addressable data archiving. It functions as an encrypted backup tool that stores data as deduplicated chunks, ensuring that every piece of information is identified by a cryptographic hash to maintain integrity across all backups. By applying strong encryption and message authentication codes to both data and metadata, the software prevents unauthorized access and detects potential tampering.

The tool distinguishes itself through a backend-agnostic storage abstraction that allows users to maintain repositories across diverse environments, including local filesystems, network-attached storage, and various cloud object storage providers. It optimizes storage efficiency and network performance by aggregating small data chunks into structured pack files and utilizing index-based metadata lookups. To further improve performance, the system maintains a local cache of repository indexes, which accelerates search operations and reduces latency during backup analysis.

Beyond its core storage capabilities, the software supports automated backup orchestration and disaster recovery planning through versioned snapshots. It provides a comprehensive set of management tools for inspecting repository objects and configuring secure connections to remote backends via standard protocols. The software is distributed as a portable binary, with support for installation through native package managers, containerized execution, and cross-compilation from source.

## Tags

### Security & Cryptography

- [Authenticated Encryption](https://awesome-repositories.com/f/security-cryptography/authenticated-encryption.md) — Protects all stored data and metadata using strong cryptographic primitives to prevent unauthorized access and detect tampering.
- [Encrypted Storage Solutions](https://awesome-repositories.com/f/security-cryptography/encrypted-storage-solutions.md) — A storage solution that protects sensitive information using strong encryption and message authentication codes to prevent unauthorized access or data tampering.
- [Encrypted Archiving Tools](https://awesome-repositories.com/f/security-cryptography/encrypted-archiving-tools.md) — Protects sensitive files by creating encrypted, deduplicated, and integrity-verified backups.
- [Data Security](https://awesome-repositories.com/f/security-cryptography/data-security.md) — Protects backup data against unauthorized access and tampering by applying strong encryption and message authentication codes. ([source](https://restic.readthedocs.io/en/latest/100_references.html))

### System Administration & Monitoring

- [Deduplication Backup Tools](https://awesome-repositories.com/f/system-administration-monitoring/deduplication-backup-tools.md) — A command-line utility that stores data as encrypted, deduplicated chunks within local or remote repositories to ensure efficient and secure backups.

### Data & Databases

- [Backup Repositories](https://awesome-repositories.com/f/data-databases/backup-repositories.md) — Stores backup data in a structured repository where files are written once and identified by content hash. ([source](https://restic.readthedocs.io/en/latest/100_references.html))
- [Content-Addressable Storage](https://awesome-repositories.com/f/data-databases/content-addressable-storage.md) — Stores data as unique blobs identified by their cryptographic hash to ensure deduplication and verify integrity.
- [Storage Abstractions](https://awesome-repositories.com/f/data-databases/storage-abstractions.md) — Translates high-level repository operations into specific protocols for local filesystems or remote cloud storage providers.
- [Metadata Indexing](https://awesome-repositories.com/f/data-databases/metadata-indexing.md) — Tracks repository state through separate index files that map content hashes to their physical locations.
- [Blob Aggregation](https://awesome-repositories.com/f/data-databases/blob-aggregation.md) — Bundles multiple small data chunks into larger pack files to optimize storage efficiency and reduce network overhead.
- [Backup Storage Backends](https://awesome-repositories.com/f/data-databases/backup-storage-backends.md) — Configures remote backup repositories using HTTP or HTTPS protocols with support for authentication and certificate verification. ([source](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html))
- [Metadata Caching](https://awesome-repositories.com/f/data-databases/metadata-caching.md) — Stores frequently accessed repository indexes on the local disk to accelerate search operations.
- [Pack File Structures](https://awesome-repositories.com/f/data-databases/pack-file-structures.md) — Organizes backup data into pack files containing multiple blobs with an encrypted header for efficient indexing. ([source](https://restic.readthedocs.io/en/latest/100_references.html))
- [Repository Initialization](https://awesome-repositories.com/f/data-databases/repository-initialization.md) — Creates a new backup repository at a specific file path by setting a secure password for encryption. ([source](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html))

### Software Engineering & Architecture

- [Disaster Recovery Solutions](https://awesome-repositories.com/f/software-engineering-architecture/disaster-recovery-solutions.md) — Maintains structured, versioned snapshots of critical data to allow for efficient restoration after system failures.

### DevOps & Infrastructure

- [Backup Orchestration Tools](https://awesome-repositories.com/f/devops-infrastructure/backup-orchestration-tools.md) — Streamlines routine data protection by integrating backup processes into automated workflows and containerized environments.
- [Cloud Storage Connectors](https://awesome-repositories.com/f/devops-infrastructure/cloud-storage-connectors.md) — Create a backup repository in cloud object storage by configuring authentication credentials and project details through standard environment variables. ([source](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html))
- [Remote Backup Protocols](https://awesome-repositories.com/f/devops-infrastructure/remote-backup-protocols.md) — Create a remote backup repository over an encrypted network connection by configuring SSH credentials and specifying the remote server path. ([source](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html))
- [Backup Storage Backends](https://awesome-repositories.com/f/devops-infrastructure/backup-storage-backends.md) — Create a backup repository in cloud object storage by configuring access keys and region-specific endpoints through environment variables. ([source](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html))

### Development Tools & Productivity

- [Storage Clients](https://awesome-repositories.com/f/development-tools-productivity/storage-clients.md) — Connects to diverse backend storage providers including cloud object stores and network file systems.

### Web Development

- [REST APIs](https://awesome-repositories.com/f/web-development/rest-apis.md) — Stores and retrieves repository data using a REST API that supports versioned headers and standard HTTP methods. ([source](https://restic.readthedocs.io/en/latest/100_references.html))
