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
-
Approximately 26.5KLOC. That is 26489 lines of bash script. ↩︎
-
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. ↩︎
-
I was waiting for
notes
feature to be done, before I announced the project. And, publishing on crates.io, so that users tocargo install
it, rather than having to build it yourself. ↩︎