Announcing my rust project: snb

After learning (and I’m still learning) basics of Rust, I decided that I need to work on real world project to get better understanding of the language and face real problems ๐Ÿ˜„

Introducing snb 1 - Superfast notes from the terminal ๐ŸŽ‰

Why choose this project ?

I’m most comforable with terminal, and Learn Rust page has a link to Command Line Book

So building some kind of command line utlity was easy decision.

But what to built - wasn’t.

Then I remembered nb

Side Track

There is no dearth of note taking apps.

Even after excluding GUI apps, there is org mode built into emacs, and then there is denote and org-roam in Emacs alone.

Then there is VimWiki and neorg

But nb is amazing because of the breadth of the features (Lets not get into feature comparison, OK?)

It can be used standalone, unlike other tools mentioned above which are part of the editor itself.

But what blew my mind was that is a one huge 2 bash script.

Let that sink in.

One. Bash. Script.

So it is not someone’s toy project.

In terms of feature set, and possibilities of using various rust libraries (using ratatui in future once I have basic functionality in place) this seemed like a worthy project to port over to rust.

Back to the scheduled blog post

So I found a worthy project.

As the meme goes, re-write everything in rust, so why not. 3

I will write more about what I learnt, and my journey in upcoming posts.

I’ll end this announcement post mentioning that while original nb has a lot of features, so far I’ve implemented only the notes 4. Refer to the Roadmap for other features planned.

Please reach out to me with any feedback/comments on mastodon (link below) and/or open an issue on github or codeberg


  1. Code also available on github ↩︎

  2. Approximately 26.5KLOC. That is 26489 lines of bash script. ↩︎

  3. I think rust binary will be faster than a bash script. But it is too early for benchmark, and that is not the goal anyway. ↩︎

  4. I was waiting for notes feature to be done, before I announced the project. And, publishing on crates.io, so that users to cargo install it, rather than having to build it yourself. ↩︎