In this post I would like to share how Rust language helped a lot to improve my note taking application’s performance.
GigaNotes is an open source a cross platform note taking application. It is written using Angular framework and was previously relying on some Electron / Cordova bindings for SQLITE, depending on the operating system it was build for.
It has a desktop version for Windows / Linux:
And a mobile version for Android devices:
After researching a lot of options how to get the optimal performance combined to maximum code re-usability and cross-platform compilation. I found Rust as the best option to implement application’s core. Except for the perfect package management tool, Rust has all the necessary bindings — Neon for Electron, Rust code easily compiles for Android. So it was relatively easy to implement the communication layer between Rust native code and those platforms like Node.Js (Electron) and Android.
After the transition was done, application architecture started to look like below:
Thanks to Rust, Giganotes application now has a fully multi-threaded core and works much faster than before.