/wickdb

Pure Rust LSM-tree based embedded storage engine

Primary LanguageRustApache License 2.0Apache-2.0

wickdb

Build Status codecov Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. dependency status FOSSA Status

This project is under rapidly development

You can find a simple worked example in examples.

Plan & Progress

The basic shape of LevelDB

  • Fundamental components
    • Arena
    • Skiplist
    • Cache
    • Record
    • Batch
    • Block
    • Table
    • Version
    • VersionEdit
    • VersionSet
    • Storage
    • DB
  • Compaction implementation
  • 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!.

License

FOSSA Status