[][src]Crate rocksdb

Rust wrapper for RocksDB.

Examples

use rocksdb::{DB, Options};
// 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();
}
let _ = DB::destroy(&Options::default(), path);

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

use rocksdb::{DB, ColumnFamilyDescriptor, Options};

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();
}
let _ = DB::destroy(&db_opts, path);

Re-exports

pub use compaction_filter::Decision as CompactionDecision;
pub use merge_operator::MergeOperands;

Modules

backup
checkpoint
compaction_filter
merge_operator

rustic merge operator

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

ColumnFamilyDescriptor

A descriptor for a RocksDB column family.

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

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

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.

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.

ReadOptions
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.

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.