A restic client written in rust

The docu is still WIP. But you can work very well with the CLI help: rustic --help or rustic <COMMAND> --help should give you good information. Also feel free to open a discussion if you have any questions!

Just curious: Would you describe rustic as a drop in replacement? So if I want to try it in my working setup of restic cronjobs, env variables and scripts, does it fit in without a lot of changes?

I first did describe it as drop-in replacement, but with the meaning that you can anytime switch from restic to rustic and vice versa as the repositories are 100% compatible.

This, however, led a bit to confusion as the rustic CLI does not work exactly as the restic CLI. Some commands or options differ a bit (besides the fact that the functionalities do not match 100%). The restic env variables do not work, but for most there are rustic env variables (if you change RESTIC into RUSTIC).

As rustic also supports a config file (see rustic/full.toml at main · rustic-rs/rustic · GitHub for reference), my recommendation is:

  • create a rustic config file - this should contain the contents of all your restic env variables
  • make a copy of your scripts changing restic to rustic

This should lead to ~95% working scripts, but you may need some finetuning afterwards.

Then, you can use your restic and rustic scipts concurrently. But note that for many use cases the configuration in the rustic config files are sufficient to describe what you want - I myself don’t use any scripts anymore since I switched to rustic.

1 Like

How long would it take for one person to write the whole Restic or Rustic?

Just wondering what you want to learn by an answer of this question… Can you rephrase what your interest is?

The point is, it depends a lot on

  • the skill of the person
  • the knowledge of the person about repository internals and process internals
  • the time the person can spend per day/week/month working on the implementation

As reference, I’ve been working on rustic roughly 1 1/2 years in my spare time but having worked a lot on all kind of restic internals before.

The reason I asked You is, I see Rustic has fewer developers than restic. So, it must be that you developed a lot of the code individually.

The reason I asked the question is, I counted the number of lines of code to see the attack/bug surface, and it seems to be a lot of work. I thought that guy Alex must be faster than me if it was written in 1-2 years. Especially given that, writing in Rust is slower than other languages like python. Just to have an idea how far my skills are from benchmarks (assuming knowledge of repository), in the context of Restic software.

This is true - I would say about 90% has been developed by me. But developers base is increasing; currently we are two maintainers working on rustic. So I would say the project is in the process of changing from a 1-person-project to a multiple-maintainer-project.

This is maybe a huge discussion (which is totally off-topic here). I can confirm that learning Rust takes a bit of time. On the other hand, my personal experience is that I am much more productive with Rust compared to most other languages (including Python for my personal perspective) - I simply can spend a much higher amount of my time in coding instead of in finding bugs…

1 Like