WiP: restic internals guide

Hola peeps :wave:.

I’ve started using restic recently for backups and it piqued my interest, since I’ve been looking for long term storage solutions with some of the properties present in this wonderful piece of software.

With the goal of learning how restic works internally -to understand what happens with my data- and learn some state of the art data storage tricks, I’ve started to write a guide that I hope will be useful for someone like myself in the future:

It’s far from finished -meaning that I need to read more code so I can polish the existing chapters and write the remaining ones-, but in the spirit of “ship early, ship often”, I’ve decided to make it public before I consider it finished (which may never happen :wink:).

Ideas, fixes, new examples, props, virtual hugs, etc are more than welcome.


I really like this. Nice work! I’ve seen a few people poking around in their repositories for various reasons, and I think that’s one of the nice things with restic, that you can actually do that and make sense of it, and in some cases it’s been useful to people for practical task, not to mention debugging.

I would love it if you could “finish” this. I think we could somehow link to, reference or include it in the documentation for restic, but that’s something @fd0 will have to have their say in as well.

I’m not entirely sure what the target audience is, but I feel there’s room for a middle ground between the standard user and the design document, something that introduces you in a more structured way than just a specification. I like it, please keep working on it! :smiley:


That’s a good question. The target audience is peeps willing to contribute to restic eventually, build tooling to augment restic’s ecosystem, or self-serve if something terrible happens with their data, empowering them to create the necessary tooling to troubleshot/fix/workaround things.

Thanks for the kind words!

Progress! I’ve been (slowly) polishing the guide and managed to add a new chapter about the index.