How I significantly improved Giganotes app performance using Rust

This page summarizes the projects mentioned and recommended in the original post on /r/rust

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • neon

    Rust bindings for writing safe and fast native Node.js modules. (by neon-bindings)

  • 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.

  • tantivy

    Discontinued Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust [Moved to: https://github.com/quickwit-oss/tantivy] (by quickwit-inc)

  • It also allowed me to add new key features like full text search. It was much harder to implement it in Javascript. Thankfully, Rust has a great crate for full text search called tantivy.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • giganotes-core

  • Thanks to Rust, Giganotes application now has a fully multi-threaded core and works much faster than before.

  • Apache Cordova

    Apache Cordova Android

  • GigaNotes is a 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. As the whole application code was written in Javascript, it had a lot of annoying performance issues because of single-threaded nature of Javascript engines. This was especially noticeable during the execution of heavy operations like synchronization of large set of notes. The recent technologies aiming to help developing multi-threaded JavaScript applications have been introduced recently, but still have a lot of limitations. Besides, the overall javascript performance is not goog enough for writing application's core. However, JavaScript is still pretty good for writing user interfaces of cross-platform applications, so I didn't consider to fully abandon it. As it said, each tool is good for its own purposes.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • SurrealDB: A new scalable document-graph database written in Rust

    12 projects | /r/rust | 20 Aug 2022
  • Encapsulation in Rust and Python

    4 projects | dev.to | 5 Apr 2024
  • Rust Bindings for the Python Interpreter

    1 project | news.ycombinator.com | 20 Feb 2024
  • PWAs wont replace native iOS apps

    2 projects | news.ycombinator.com | 15 Feb 2024
  • Polars – A bird's eye view of Polars

    4 projects | news.ycombinator.com | 13 Feb 2024