[][src]Crate ckb_rocksdb

Rust wrapper for RocksDB.

Examples

use ckb_rocksdb::prelude::*;
// NB: db is automatically closed at end of lifetime

let path = "_path_for_rocksdb_storage";

let db = DB::open_default(&path).unwrap();
db.put(b"my key", b"my value").unwrap();
match db.get(b"my key") {
    Ok(Some(value)) => println!("retrieved value {}", value.to_utf8().unwrap()),
    Ok(None) => println!("value not found"),
    Err(e) => println!("operational problem encountered: {}", e),
}
db.delete(b"my key").unwrap();

Opening a database and a single column family with custom options:

use ckb_rocksdb::{prelude::*, ColumnFamilyDescriptor};

let path = "_path_for_rocksdb_storage_with_cfs";

let mut cf_opts = Options::default();
cf_opts.set_max_write_buffer_number(16);
let cf = ColumnFamilyDescriptor::new("cf1", cf_opts);

let mut db_opts = Options::default();
db_opts.create_missing_column_families(true);
db_opts.create_if_missing(true);
let db = DB::open_cf_descriptors(&db_opts, &path, vec![cf]).unwrap();

Re-exports

pub extern crate librocksdb_sys as ffi;
pub use column_family::ColumnFamilyDescriptor;
pub use compaction_filter::Decision as CompactionDecision;
pub use merge_operator::MergeOperands;

Modules

backup
checkpoint
column_family
compaction_filter
ffi_util
merge_operator

rustic merge operator

ops
prelude

Structs

BlockBasedOptions

For configuring block-based file storage.

ColumnFamily

An opaque type used to represent a column family. Returned from some functions, and used in others

DB

A RocksDB database.

DBIterator

An iterator over a database or column family, with specifiable ranges and direction.

DBPinnableSlice

Wrapper around RocksDB PinnableSlice struct.

DBRawIterator
DBVector

Vector of bytes stored in the database.

Error

A simple wrapper round a string, used for errors reported from ffi calls.

FlushOptions

Optionally wait for the memtable flush to be performed.

OptimisticTransaction
OptimisticTransactionDB

A optimistic transaction database.

OptimisticTransactionOptions
OptimisticTransactionSnapshot
Options

Database-wide options around performance and behavior.

PlainTableFactoryOptions

Used with DBOptions::set_plain_table_factory. See https://github.com/facebook/rocksdb/wiki/PlainTable-Format.

ReadOnlyDB
ReadOptions
SecondaryDB
SecondaryOpenDescriptor
SliceTransform

A SliceTranform is a generic pluggable way of transforming one string to another. Its primary use-case is in configuring rocksdb to store prefix blooms by setting prefix_extractor in ColumnFamilyOptions.

Snapshot

A consistent view of the database at the point of creation.

TemporaryDBPath

Ensures that DB::Destroy is called and the directory is deleted for this database when TemporaryDBPath is dropped.

Transaction
TransactionDB

A transaction database.

TransactionDBOptions
TransactionOptions
TransactionSnapshot
WriteBatch

An atomic batch of write operations.

WriteOptions

Optionally disable WAL or sync for this write.

Enums

BlockBasedIndexType

Used by BlockBasedOptions::set_index_type.

DBCompactionStyle
DBCompressionType
DBRecoveryMode
Direction
IteratorMode
MemtableFactory

Defines the underlying memtable implementation. See https://github.com/facebook/rocksdb/wiki/MemTable for more information.

Traits

ConstHandle
Handle

Provides access to underlying handles for database operations