A simple single-threaded implementation of a storage engine and a database based on copy-on-write B+tree with unconstrained key and value length in Rust.
The project has zero dependencies and only relies on Rust Standard Library. The only external development dependency we use is rand crate for fuzz tests.
I am currently working on adding other parts of the database such as query parsing, analysis, and execution using the storage engine.
If you are interested in helping out, feel free to open PRs for features or bug fixes. There is also a number of TODOs scattered around the codebase.
cargo check
or
cargo build
Unit tests:
cargo test
Integration tests:
it/run_test.sh
You can also start a simple key-value store built on top of the storage engine.
cargo run --bin kv