#patricia #exonum #database #cryptography #key-value-store #data-structures #merkelize

sys exonum-merkledb

Persistent storage implementation based on RocksDB which provides APIs to work with Merkelized data structures

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

Download history 14/week @ 2023-12-03 10/week @ 2023-12-10 32/week @ 2023-12-17 28/week @ 2023-12-24 2/week @ 2023-12-31 18/week @ 2024-01-07 22/week @ 2024-01-14 6/week @ 2024-01-21 4/week @ 2024-01-28 19/week @ 2024-02-04 24/week @ 2024-02-11 39/week @ 2024-02-18 63/week @ 2024-02-25 35/week @ 2024-03-03 45/week @ 2024-03-10 47/week @ 2024-03-17

196 downloads per month
Used in 14 crates (12 directly)

Apache-2.0

1MB
16K SLoC

Exonum MerkleDB

Travis Build Status Docs.rs rust 1.42.0+ required License: Apache-2.0

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

~29–42MB
~746K SLoC