Why We’re Rewriting FalkorDB in Rust – and the Journey Behind It
Deciding to rewrite FalkorDB in Rust wasn’t easy. For over 8 years, our team has been deeply proficient in C, having originally built FalkorDB (formerly known as RedisGraph) with it. C has been our comfort zone, and it's been a critical part of what makes FalkorDB so performant today. So, when we started considering Rust, I knew it wasn’t going to be an easy sell.
Convincing the team to move away from C was a challenge. After all, it’s what we know inside and out—why change something that works? But as we looked ahead to the future of FalkorDB and the demands of modern data-intensive applications, it became clear that Rust could take us further, both in terms of performance and long-term stability.
Why Rust?
Let's start with the obvious:
- Memory Safety Without Sacrificing Speed: One of the biggest advantages of Rust is its focus on memory safety. We can avoid the bugs that plague C code—without giving up the high performance that we’re known for.
A critical factor in our decision:
2.Ultra-Low Latency: Rust allows us to achieve even lower latency, which is critical for our users' real-time applications. We’re rewriting FalkorDB one component at a time, and already we’re seeing impressive gains in speed and efficiency.
We couldn't do it other way:
- Incremental Transition: We didn’t dive in headfirst. Instead, we’re taking a pragmatic approach, rewriting FalkorDB component by component. This allows us to keep everything up and running while reaping the benefits of Rust where it matters most.
Looking for the long run:
- Future-Proofing: We’re thinking long-term. Rust’s growing ecosystem and its focus on safe, high-performance code make it the perfect fit for where we want to take FalkorDB in the future.
The team is fully on board now, and while the transition isn’t easy, it’s one of the most exciting challenges we’ve faced. We’re not just rewriting a database—we’re building something that will set the foundation for the next generation of Knowledge Serving.
I couldn’t be more proud of the work we’re doing and the direction FalkorDB is heading. Stay tuned for more updates as we continue to push the boundaries of what’s possible with Rust!
Feel free to check it out we would love to hear your feedback, the new components in Rust are maintained in this repo https://github.com/FalkorDB/FalkorDB-core-rs