Restic repo structure (pictorial representation)

I’ve summarized restic’s repo structure in this image. Open to suggestions and improvements about the same. Hope it helps :slight_smile:

10 Likes

Great work, I think this will help in like giving a one shot understanding :grin:

1 Like

Thanks for the figure!

We’ve recently fixed some outdated information in the repository format documentation; you might want to take a look at those: History for doc/design.rst - restic/restic · GitHub . In particular, the snapshots don’t have a dir field and by now pack files are expected to either contain data blobs or tree blobs. For repo v2, it is actually forbidden to mix them.

Hey, thanks for the pointers. I’ll make the changes and upload the latest one.

I’ve made all the corrections. Here’s the updated version!

4 Likes

Too good. Great work!!!

Heyyy Pratt, I wanted to express my gratitude for this post. It really helped me gain a better understanding on repo structure. Thank you!!!

2 Likes

Hi @PrattDarsh, thanks for making this repo visualization.

One thing that I would suggest making clearer: tree blobs and data blobs are stored in separate pack files, but all pack files reside under the data/ directory. Currently, your graphic shows “data pack” inside data/ but doesn’t mention that a pack file can also contain tree blobs. (This is indicated in the index files which contain json referencing packs→blobs→type:tree, so that’s a clue.)

Regards,
Quinn