A Rust library that implements a Sparse Merkle tree for a key-value map. The tree implements the same optimisations specified in the [Libra whitepaper][libra whitepaper], to reduce the number of hash operations required per tree operation to O(k) where k is the number of non-empty elements in the tree.
[
][Github-url]
[
][CI-url]
[
][codecov-url]
[
][doc-url]
[
][crates-url]
[
][rustc-url]
[
][license-apache-url]
[
][license-mit-url]
[English][en-url] | 简体中文
## Installation
```toml
[dependencies]
lsmtree = "0.0.6"
```
#### License
`lsmtree` is under the terms of both the MIT license and the
Apache License (Version 2.0).
See [LICENSE-APACHE](LICENSE-APACHE), [LICENSE-MIT](LICENSE-MIT) for details.
Copyright (c) 2022 Al Liu.
[Github-url]: https://github.com/al8n/lsmtree/
[CI-url]: https://github.com/al8n/lsmtree/actions/workflows/ci.yml
[doc-url]: https://docs.rs/lsmtree
[crates-url]: https://crates.io/crates/lsmtree
[codecov-url]: https://app.codecov.io/gh/al8n/lsmtree/
[license-url]: https://opensource.org/licenses/Apache-2.0
[rustc-url]: https://github.com/rust-lang/rust/blob/master/RELEASES.md
[license-apache-url]: https://opensource.org/licenses/Apache-2.0
[license-mit-url]: https://opensource.org/licenses/MIT
[zh-cn-url]: https://github.com/al8n/lsmtree/tree/main/README-zh_CN.md
[libra whitepaper]: https://diem-developers-components.netlify.app/papers/the-diem-blockchain/2020-05-26.pdf