We're Moving to Rust

Apr 1, 2023. | By: Alexey Timin

Initially, I chose to use C++ for the early editions of ReductStore because of my experience with the language. This allowed me to quickly create a functional time series database for binary data. However, as our platform expanded to include Windows and MacOS, I found myself struggling to manage the C++ infrastructure as the codebase grew. This made it difficult for me to focus on enhancing the product’s functionality and unique features, as I had to ensure compatibility across multiple platforms while managing numerous dependencies.

Benefits of using Rust for our project

After considering several options, we have decided to move our code base to Rust. Rust is a modern and efficient systems programming language that offers many advantages over C++. Its memory safety features ensure that programs are free of null pointer dereferences, buffer overflows, and other common security vulnerabilities. In addition, Rust’s package manager (Cargo) simplifies dependency management and facilitates cross-platform application development. With its focus on performance and reliability, we believe that Rust will enable us to build a more stable and scalable product while reducing the risk of runtime errors.

Migration plan

Rather than rewrite the entire code base at once, we decided to take a module-by-module approach to our migration process. Our strategy is to combine C++ and Rust using the efficient cxx.rs library. We will perform rigorous testing at every step of the way to ensure a seamless transition. At this time, building for Windows and MacOS has been disabled, as it is not practical to invest time in outdated infrastructure. Once the migration is complete, we plan to cross compile with Rust for enhanced functionality.

#News

About

ReductStore is a time series database designed specifically for storing and managing large amounts of blob data. It has high performance for writing and real-time querying, making it suitable for edge computing, computer vision, and IoT applications. ReductStore is 100% open source under Mozilla Public License 2.0.

Imprint

ReductStore LLC
651 N BOARD ST STE 201
MIDDLETOWN, DE 19709
info@reduct.store