Kiritan: alternative to createrepo_c, 10× faster, 30× less RAM

Hi! I’m mado from Fyra Labs! We’re the people behind Terra, which is a third-party repository that contains thousands of packages.

We have our own package delivery system called subatomic, which (v0) was written in Go, and shelled out to createrepo_c. Due to many different constraints, I took the initiative to rewrite it in Rust!

subatomic v1 comes with its own logic for repodata generation, and according to our (simple) benchmarks, it performs significantly better than createrepo_c, which is why we created a separate binary called kiritan acting as a simple replacement for createrepo_c. Try it out! (You’ll unfortunately need to build it manually for now, and it requires Rust nightly.)

You can check out the blog post here for more details: Kiritan: 10× Faster Alternative to Createrepo_c

Source code: GitHub - FyraLabs/subatomic: A modern package delivery system for RPMs · GitHub

2 Likes

Last time I checked, terra replaced some official fedora repo packages.

This looks interesting. I would like to see it packaged - at least in Copr. But the requirement of Rust nightly will not ease that.

Once it gets functional parity with createrepo_c (various compression, checksums) I will revisit this project.

1 Like