A couple of years passed since i wrote GutenbergPy. It has since gained some traction. A few people contacted me for information, wanting to help, and using it in their projects. I won’t say it’s famous; in fact, it has gained little traction in terms of people using it versus time since launch; however, it is a niche project, and for what it did, I consider it a minor success (there already existed one library with a better name that did almost the same things but slower with more resource consumption and less maintained).

I have this friend Alex Ene who likes Rust. He uses it at his day-to-day job and also for his project dwarf world, streams most of his coding on twitch. He suggested I try Rust, so I did. Rust has grown on me. I also like C++ and Python, but I’m starting to dislike Haskell because I can’t get any of my old code to compile, let alone run, without extensive rework and cabal trickstery.

It’s a good thing I never wrote production code in Haskell because it would have been a nightmare to maintain.

I didn’t manage to get on board with another genome research project after finishing my Ph.D. during the pandemic, so I had some extra time on my hands.

I was looking for a good project to give back to the community while honing my newly acquired skill after spending some time learning Rust. I thoroughly enjoyed rewriting GutenbergPy in Rust! Don’t get me wrong, writing code in Rust takes longer than Python, and the resulting binary is sometimes slower than c++ (perhaps because I have more experience with c++), but the overall experience is good.

Long story short I present gutenberg-rs on github and it’s published crate.

I hope you enjoy working with this crate as much as I enjoyed writing it. I won’t include usage examples here because they are included in the documentation, but I will write an article with a short and sweet application that uses the library, something fun you can do this Christmas. I’m thinking about making a video tutorial as well because it appears that many programmers prefer watching videos to reading.