restic
Original author(s)Alexander Neumann
Initial release21 August 2015; 9 years ago (2015-08-21)
Stable release
0.9.5 / 23 April 2019; 5 years ago (2019-04-23)
Repositorygithub.com/restic/restic
Written inGo
Operating systemLinux, macOS, Windows, and more[1]
TypeBackup
LicenseBSD[2]
Websitewww.restic.net

Restic is a deduplicating backup software with a strong focus on ease of use without compromising security and integrity. It runs on various Unix-like operating systems as well as Windows.

Many storage backends are supported, including local filesystem, SFTP server (via SSH), HTTP REST server (using rest-server[3]), S3 (from Amazon AWS or using Minio), OpenStack Swift, Backblaze B2, Microsoft Azure Blob Storage and Google Cloud Storage.

History

edit

Restic development began in April 2014[4] and the first release was version 0.1.0 in August 2015[5].

Restic has been packaged for various operating systems and distributions, including macOS, Arch Linux, Nix & NixOS, Debian and Docker.[1]

Design

edit

The main design goals of restic are simplicity and speed to encourage backing up and easy restoring, verifiable backups, strong security, a small footprint, and being free for anyone to use.[6] The restic design document[7] elaborates on the technical details of its design.

Being built in Go, restic supports multiple platforms and operating systems, single binary distribution and also cross-compiling.[8]

Restic uses a repository format where any file is written only once and never modified, which allows for multiple clients to access and write to the repository in parallel.[9] Multiple access keys per repository is supported.[10]

Restic has built-in deduplication, allowing it to upload only the relevant parts of changed files, thereby reducing the amount of data that needs to be transferred when backing up incrementally.[11] Compression is currently not implemented, but is being worked on.[12]

A prominent feature of restic is the ability to mount a repository using FUSE, in order to present the user with a browsable directory tree containing the various snapshots and their files and directories, allowing for quick and ad-hoc restores.[13] This feature is not available on Windows and OpenBSD.[13]

By using a local cache, restic can limit the amount of data that has to be downloaded from the repository, speeding up certain operations (at the cost of some disk space).[14]

Reception

edit

In an interview in the Go Time podcast, restic author Alexander Neumann was invited to discuss the choice of Go for building restic, as well as challenges along the way.[15]

Cryptographer Filippo Valsorda[16] did an informal review of restic's cryptography in a post on his blog.[17]

Restic author Alexander Neumann was invited to give a lecture at FrOSCon 2015 in Bonn, Germany.[18]

Another talk was given by Alexander Neumann at CCC Cologne e.V. in Cologne, Germany in 2016.[19]

See also

edit

References

edit
  1. ^ a b "Installation instructions". restic.readthedocs.io. 29 December 2017. Retrieved 29 December 2017.
  2. ^ "License information". restic.github.io. 29 December 2017. Retrieved 29 December 2017.
  3. ^ "restic REST server". github.com. 29 December 2017. Retrieved 29 December 2017.
  4. ^ "Commit c54facf66be1c4e137121f36b300543f6673ea7c in restic source code repository". github.com. 29 December 2017. Retrieved 29 December 2017.
  5. ^ "Tag 0.1.0 in restic release history". github.com. 29 December 2017. Retrieved 29 December 2017.
  6. ^ "Restic design goals". restic.github.io. 29 December 2017. Retrieved 29 December 2017.
  7. ^ "Restic design document". restic.readthedocs.io. 29 December 2017. Retrieved 29 December 2017.
  8. ^ "Installation from source". restic.readthedocs.io. 29 December 2017. Retrieved 29 December 2017.
  9. ^ "Repository format". restic.readthedocs.io. 29 December 2017. Retrieved 29 December 2017.
  10. ^ "Manage repository keys". restic.readthedocs.io. 29 December 2017. Retrieved 29 December 2017.
  11. ^ "Backups and deduplication". restic.readthedocs.io. 29 December 2017. Retrieved 29 December 2017.
  12. ^ "Implement compression (issue #21)". github.com. 29 December 2017. Retrieved 29 December 2017.
  13. ^ a b "Restore using mount". restic.readthedocs.io. 29 December 2017. Retrieved 29 December 2017.
  14. ^ "Caching". restic.readthedocs.io. 29 December 2017. Retrieved 29 December 2017.
  15. ^ "Restic and Backups (Done Right)". gotime.fm. 1 June 2017. Retrieved 29 December 2017.
  16. ^ "Hi! I'm Filippo Valsorda". blog.filippo.io. Retrieved 29 December 2017.
  17. ^ "Restic Cryptography". blog.filippo.io. 29 August 2017. Retrieved 29 December 2017.
  18. ^ "A Solution to the Backup Inconvenience". media.ccc.de. 23 August 2015. Retrieved 29 December 2017.
  19. ^ "restic - Backups mal richtig". media.ccc.de. 29 June 2016. Retrieved 29 December 2017.
edit

Category:2015 software Category:Backup software for Linux Category:Free backup software Category:Go (programming language) software Category:Software using the BSD license