Crate rocksdb[][src]

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 {}", String::from_utf8(value).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 crate::compaction_filter::Decision as CompactionDecision;
pub use crate::merge_operator::MergeOperands;
pub use crate::perf::PerfContext;
pub use crate::perf::PerfMetric;
pub use crate::perf::PerfStatsLevel;

Modules

backup
checkpoint

Implementation of bindings to RocksDB Checkpoint1 API

compaction_filter
compaction_filter_factory
merge_operator

rustic merge operator

perf

Structs

BlockBasedOptions

For configuring block-based file storage.

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

CompactOptions
DB

A RocksDB database.

DBIterator

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

DBPath

Represents a path where sst files can be put into

DBPinnableSlice

Wrapper around RocksDB PinnableSlice struct.

DBRawIterator

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

DBWALIterator

Iterates the batches of writes since a given sequence number.

Env

An Env is an interface used by the rocksdb implementation to access operating system functionality like the filesystem etc. Callers may wish to provide a custom Env object when opening a database to get fine gain control; e.g., to rate limit file system operations.

Error

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

FifoCompactOptions
FlushOptions

Optionally wait for the memtable flush to be performed.

IngestExternalFileOptions

For configuring external files ingestion.

LiveFile

The metadata that describes a SST file

Options

Database-wide options around performance and behavior.

PlainTableFactoryOptions

Used with DBOptions::set_plain_table_factory. See official wiki for more information.

ReadOptions
SliceTransform

A SliceTransform 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.

SstFileWriter

SstFileWriter is used to create sst files that can be added to database later All keys in files generated by SstFileWriter will have sequence number = 0.

UniversalCompactOptions
WriteBatch

An atomic batch of write operations.

WriteOptions

Optionally disable WAL or sync for this write.

Enums

BlockBasedIndexType

Used by BlockBasedOptions::set_index_type.

BottommostLevelCompaction
DBCompactionStyle
DBCompressionType
DBRecoveryMode
DataBlockIndexType

Used by BlockBasedOptions::set_data_block_index_type.

Direction
IteratorMode
MemtableFactory

Defines the underlying memtable implementation. See official wiki for more information.

UniversalCompactionStopStyle

Constants

DEFAULT_COLUMN_FAMILY_NAME

The name of the default column family.

Traits

WriteBatchIterator

Receives the puts and deletes of a write batch.