I’ve been experimenting with building an “improved” version of Redis using Rust as a personal project over the last few months in what started as a “what if” and has become something I’ve found myself more and more interested in. After the HN post last week I decided to see if there’s interest in such a more serious project that, despite having a bunch of AI-generated code. still aspires to someday be a quality tool. I definitely don’t claim to have created this thing all by myself, but I’ve put a lot of time guiding the implementation and testing.
Creating databases in the age of AI is still hard so I’ve been leaning on a bunch of testing from my experience in distributed systems design over the years to try and prove its correctness: “trust me bro” doesn’t work over network boundaries of course. I don’t claim that the code is good or idiomatic and only have a beginners knowledge of rust from working on another personal project a few years back, so any “adults” with working Rust experience are welcome to provide feedback and direction.
It currently supports all of the current Redis 8.0 functionality, including search, vectors, json, probabilistic structures, etc. as well as cluster mode, replication and persistence. I want to make it really easy to operate so I’ve added a host of things like open telemetry, Prometheus, dtrace support, http debug pages, a cli tool, etc.
I have thousands of tests in place not including various black box concurrency testing frameworks like turmoil and Jepsen.
Things I’m currently working to add: Zero downtime upgrades auto cluster rebalancing Auto data migration proxy Performance improvements like io_uring support
Let me know what you think!
(PS) in the process I tried implementing a coz-style profiler for tokio (current crate has been abandoned) as a side quest to figure out where to best spend time optimizing which has been a fun part of this as well.