Crate ckb_rocksdb[][src]

Expand description

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 crate::column_family::ColumnFamilyDescriptor;
pub use crate::compaction_filter::Decision as CompactionDecision;
pub use crate::merge_operator::MergeOperands;

Modules

Structs

For configuring block-based file storage.

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

A RocksDB database.

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

Wrapper around RocksDB PinnableSlice struct.

Vector of bytes stored in the database.

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

Optionally wait for the memtable flush to be performed.

A optimistic transaction database.

Database-wide options around performance and behavior.

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

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.

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

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

A transaction database.

An atomic batch of write operations.

Optionally disable WAL or sync for this write.

Enums

Used by BlockBasedOptions::set_index_type.

Used by BlockBasedOptions::set_data_block_index_type.

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

Traits

Provides access to underlying handles for database operations