[][src]Crate schemadb

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 Libra 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 Schemas.

SchemaBatch

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 the SchemaBatch.

SchemaIterator

DB Iterator parameterized on Schema that seeks with Schema::Key and yields Schema::Key and Schema::Value

Enums

ScanDirection

Constants

DEFAULT_CF_NAME

Name for the default column family that's always open by RocksDB. We use it to store LedgerInfo.

Type Definitions

ColumnFamilyName

Type alias to improve readability.

ReadOptions

Type alias to rocksdb::ReadOptions. See rocksdb doc