You can find a simple worked example in examples
.
- Fundamental components
- Arena
- Skiplist
- Cache
- Record
- Batch
- Block
- Table
- Version
- VersionEdit
- VersionSet
- Storage (aka Env)
- DB
- Compaction implementation
- Scheduling
- Solid test cases
- Benchmark
We should use Rust as safe as we could because that's why we prefer using Rust.
Slice
could be replaced using crate bytes.LRUCache
is a double-linked circle list implemented by raw pointer.
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 TODO
s in current implementation and you can pick either of them to do something.
This crate is still at early stage so any PR or Issue is welcomed !.