rustic - fast, encrypted, and deduplicated backups powered by Rust
Go to file
2022-05-23 20:42:07 +02:00
src adapt tree json format to restic's tree format 2022-05-23 20:42:07 +02:00
Cargo.toml Add compression support 2022-05-23 10:36:49 +02:00
README.md Update README 2022-05-10 00:15:06 +02:00

rustic - a restic-compatible backup tool written in pure Rust

crate Docs Apache2/MIT licensed Crates.io Downloads

Rustic is a backup tool that provides fast, encrypted, deduplicated backups. It can read the restic repo format desribed in the design document and writes a compatible repo format which can also be read by restic.

Note that rustic currently is in an alpha release and misses functionalities and tests. It is not yet considered to be ready for use in a production environment.

Open points:

  • Add more backends, backup-sources and restore-destinations
  • Add missing commands
  • Parallelize the code even more
  • Improve error handling
  • Add tests and benchmarks
  • Add CI

Open issues:

  • restore does not yet restore metadata

Comparison with restics:

Improvements:

  • Completely lock-free
  • Huge decrease in memory requirement
  • Already much faster for some operations (but not yet fully speed optimized)
  • Can use .gitignore files
  • Snapshots save much more information
  • cat tree command accepts a snapshot and path to cat the tree blob

Differences:

  • backup uses glob patterns to include/exclude instead of exclude files
  • file/dir permissions have different format in go and rust (but the important information is identical)

Current limitations:

  • Missing commands, e.g.: mount, copy, dump, find
  • Backup source and restore destinations only on local file system
  • Backup backends: So far only local disc and REST backends supported (others using rclone as REST backend)
  • Runs so far only on linux; help appreciated to add support for other OSes
  • Not much speed optimized (and no cache implemented)
  • ... and many more

License

Licensed under either of:

at your option.

Contribution

Contributions in form of issues or PRs are very welcome.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.