Comment by tombert
I have been porting over my favorite Erlang library "Bitcask" to Rust.
https://git.sr.ht/~tombert/feocask
Called "feocask" cuz feo means "ugly" in Spanish and FeO to mean Iron Oxide for Rust. I thought it was funny.
I will admit that I had help from Codex, but I did write most of it myself, and I think the design is coming out kind of neat. I have a very strict "no lock" policy [1], including lockfiles, and this should still be safe to use across any number of threads, at the cost of N^2 reconciliation to the number of threads and a lot more drive space.
I like my design; I have an excuse to use Vector Clocks and Hybrid Logical Clocks and I think it might actually be useful for something some day. I'd like to eventually write something that goes a bit beyond getting parity with bitcask and optionally have the ability to automatically distribute across multiple nodes, but I'm still trying to think of a good design for that, because my current design depends heavily the atomicity of POSIX filesystem commands, and introducing the network introduces latency that would likely greatly degrade performance.
[1] At least no explicit locks. I am using Tokio channels and they are probably using locks in some spots behind the scenes.
fyi the project appears to be private :)