Expand description
This library implements a schematized DB on top of RocksDB. It makes sure all data passed in and out are structured according to predefined schemas and prevents access to raw keys and values. This library also enforces a set of Diem specific DB options, like custom comparators and schema-to-column-family mapping.
It requires that different kinds of key-value pairs be stored in separate
column families. To use this library to store a kind of key-value pairs,
the user needs to use the define_schema!
macro to define the schema
name, the types of key and value, and name of the column family.
Modules§
- schema
- This module provides traits that define the behavior of a schema and its associated key and value types, along with helpers to define a new schema with ease.
Macros§
- define_
schema - Macro for defining a SchemaDB schema.
Structs§
- DB
- This DB is a schematized RocksDB wrapper where all data passed in and out
are typed according to
Schema
s. - Schema
Batch SchemaBatch
holds a collection of updates that can be applied to a DB atomically. The updates will be applied in the order in which they are added to theSchemaBatch
.- Schema
Iterator - DB Iterator parameterized on
Schema
that seeks withSchema::Key
and yieldsSchema::Key
andSchema::Value
Enums§
Constants§
- DEFAULT_
CF_ NAME - Name for the
default
column family that’s always open by RocksDB. We use it to storeLedgerInfo
.
Type Aliases§
- Column
Family Name - Type alias to improve readability.
- Options
- Type alias to
rocksdb::Options
. - Read
Options - Type alias to
rocksdb::ReadOptions
. Seerocksdb doc