7 releases (1 stable)
1.0.0 | Mar 31, 2020 |
---|---|
1.0.0-rc.3 | Mar 25, 2020 |
1.0.0-rc.1 | Feb 7, 2020 |
0.13.0-rc.2 | Dec 4, 2019 |
0.12.0 | Aug 14, 2019 |
#12 in #patricia
93 downloads per month
Used in 14 crates
(12 directly)
1MB
16K
SLoC
Exonum MerkleDB
MerkleDB is a document-oriented persistent storage which provides APIs to work with merkelized data structures. Under the hood, MerkleDB uses RocksDB as a key-value storage.
Features
- Supports list, map and set collections (aka indexes), as well as singular elements. Further, indexes can be organized into groups, allowing to create hierarchies of documents with arbitrary nesting.
- Automated state aggregation of top-level indexes into a single state hash, which reflects the entire database state.
- Ability to define data layouts in an intuitive, declarative format.
- Basic support of transactions: changes to the storage can be aggregated into a fork and then merged to the database atomically.
- Access control leveraging the Rust type system, allowing to precisely define access privileges for different actors.
- First-class support of long-running, fault-tolerant data migrations running concurrently with other I/O to the storage.
Usage
Include exonum-merkledb
as a dependency in your Cargo.toml
:
[dependencies]
exonum-merkledb = "1.0.0"
See the description in Exonum docs for a more detailed overview, and the examples for the examples of usage.
License
exonum-merkledb
is licensed under the Apache License (Version 2.0).
See LICENSE for details.
Dependencies
~30–41MB
~752K SLoC