4 个版本 (2 个破坏性更新)
使用旧的 Rust 2015
0.3.0 | 2019年1月31日 |
---|---|
0.2.0 | 2018年12月23日 |
0.1.1 | 2018年12月4日 |
0.1.0 | 2018年11月28日 |
#31 在 #bincode
19KB
301 代码行
Rocksbin-db
使用 serde 和 bincode 自动序列化的简单 Rust rocksdb 包装器。
如果您需要的是存储在磁盘上的持久性 HashMap 和简单的 API,则此库非常合适。
extern crate rocksbin;
use rocksbin::DB;
let db = DB::open("db_dir").unwrap();
let fish_count = db.prefix::<String, u64>(b"fish_count").unwarp();
fish_count.insert("salmon", 10).unwarp();
fish_count.insert("cod", 100).unwarp();
fish_count.insert("mackerel", 70).unwarp();
assert_eq!(fish_count.get("salmon").unwarp(), Some(10));
lib.rs
:
rocksbin-db
是一个简单的库,它通过模拟 rust 集合(如 HashMap
)的接口来包装 rocksdb。
它通过利用 serde 和 bincode 自动将您输入数据库中的数据序列化来实现这一点。
示例
#[macro_use]
extern crate serde_derive;
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug)]
struct Fish {
count: u64,
latin_name: String,
}
let db = rocksbin::DB::open("db_dir").unwrap();
let fish = db.prefix::<String, Fish>(b"fish").unwrap();
let salmon = Fish {
count: 100,
latin_name: "Salmo salar".to_string(),
};
fish.insert("salmon", &salmon);
assert_eq!(fish.get("salmon").unwrap(), Some(salmon));
依赖关系
~26MB
~543K SLoC