4 stable releases
1.2.0 | Jul 15, 2021 |
---|---|
1.1.2 | May 6, 2021 |
1.0.1 | Apr 14, 2021 |
1.0.0 | Apr 12, 2021 |
#1540 in Database interfaces
390KB
7.5K
SLoC
MatterDB
MatterDB is a document-oriented persistent storage. 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.
- 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 matterdb
as a dependency in your Cargo.toml
:
[dependencies]
matterdb = "1.0.0"
History notice
MatterDB was initially created as MerkleDB by Exonum.
MerkleDB was initially created to support merklized collections atop of the persistent key-value storage. This project does not have the same purpose: instead, it provides a generic convenient and (ideally) backend-agnostic interface for the persistent NoSQL storage, without any bounds to the blockchain specifics.
License
matterdb
is licensed under the Apache License (Version 2.0).
See LICENSE for details.
Dependencies
~29MB
~583K SLoC