Wickdb
Pure Rust LSM-tree based embedded storage engine
Install / Use
/learn @Fullstop000/WickdbREADME
wickdb
<a href="https://www.repostatus.org/#wip"><img src="https://www.repostatus.org/badges/latest/wip.svg" alt="Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public." /></a>
This project is under rapidly development
You can find a simple worked example in examples.
Plan & Progress
The basic shape of LevelDB
- [x] Fundamental components
- [x] Arena
- [x] Skiplist
- [x] Cache
- [x] Record
- [x] Batch
- [x] Block
- [x] Table
- [x] Version
- [x] VersionEdit
- [x] VersionSet
- [x] Storage
- [x] DB
- [x] Compaction implementation
- [x] Scheduling
[ongoing] Test cases & Benches
- Adding more test cases. The progress is tracked by this issue.
- Adding benchmarks. The progress is tracked by this issue.
Developing
wickdb is built using the latest version of stable Rust, using the 2018 edition.
In order to have your PR merged running the following must finish without error otherwise the CI will fail:
cargo test --all && \
cargo clippy && \
cargo fmt --all -- --check
You may optionally want to install cargo-watch to allow for automated rebuilding while editing:
cargo watch -s "cargo check --tests"
There're so many TODOs in current implementation and you can pick either of them to do something.
This crate is still at early stage so any PRs or issues are welcomed!.
