Show HN: Mkii – An Expirimental Redis Clone Built with Rust and Tokio
github.com
github.com
The project is built on Rust and Tokio, and uses an SMP design to acheive parrallelism. I've recently updated it to work with the stablilized futures and async/await syntax.
Without persistence and transactions the database architecture is relatively easy to understand and it scales well without the pitfalls of something like thread-per-connection. Currently only the STRING functions are implemented in Redis and hashes and lists don't seem to hard. However before doing a ton of other work, I'd like to be more confident my architecture is sound.
This is a learning experience for me to exercise my brain - I'm not working towards anything production worthy.
While doing that, I came across the 'sled' crate as a wait-free KV-store. If does blocking I/O, though, but it might serve as a starting point for working on the storage side of things. As it uses traits to express the interface, I'm not sure it could be made asyncable using the current language features.
I'll definitely been looking at how you did the async parts.