
Show HN: Mkii – An Expirimental Redis Clone Built with Rust and Tokio - nemothekid
https://github.com/nemosupremo/mkii
======
nemothekid
mkii (Mark 2) is a redis clone I've been working on and off for a while and
I've decided to open source it recently as I think I'm a bit stuck on where to
find some literature on how to implement some concepts like persistence and
transactions using a SMP design. I'll probably be hitting some online courses
but I wanted to put this out there to see if anyone had any constructive
feedback.

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.

~~~
halffullbrain
I think your project is really cool (perhaps because I've been working on a
graph database (Neo4J-compatible) in Rust to learn it, so I understand your
motivations...)

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.

