4个版本
0.0.6 | 2023年7月13日 |
---|---|
0.0.5 | 2023年7月13日 |
0.0.4 | 2023年7月13日 |
0.0.3 | 2023年7月13日 |
#2103 在 数据库接口
440KB
8K SLoC
rust-speedb
lib.rs
:
RocksDB的Rust封装
示例
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);
使用自定义选项打开数据库和单个列族
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);
依赖项
~1.2–5MB
~96K SLoC