16 个版本 (4 个重大更改)

使用旧 Rust 2015

0.6.0 2017年4月23日
0.5.1 2017年3月25日
0.4.6 2017年3月11日
0.4.2 2017年2月28日
0.2.3 2017年2月17日

#20 in #beta

每月36次下载

MIT 许可证

13KB
216

kv_cab

crates.io version

简单的持久化通用 HashMap/键值存储,使用文件锁定来限制线程之间的写入。

目前处于测试阶段。

文档

基本用法

extern crate kv_cab;

use kv_cab::{ KV, Value };

fn main() {
    let mut test_store = KV::<String, Value>::new("./db.cab");

    let _ = test_store.insert("key".to_string(), Value::String("value".to_string()));
    println!("{:?}", test_store.get("key".to_string()));
    let _ = test_store.remove("key".to_string());
}

使用用户定义的键和值类型使用

extern crate kv_cab;
extern crate rustc_serialize;

use kv_cab::KV;

#[derive(Clone, RustcEncodable, RustcDecodable, PartialEq, Eq, Hash)]
enum MyKey {
    String(String),
    Int(i32),
}

#[derive(Clone, RustcEncodable, RustcDecodable, Debug)]
enum MyValue {
    String(String),
    Int(i32),
}

fn main() {
    let mut test_store = KV::<MyKey, MyValue>::new("./db.cab");

    let _ = test_store.insert(MyKey::Int(1i32), MyValue::String("value".to_string()));
    println!("{:?}", test_store.get(MyKey::Int(1i32)));
    let _ = test_store.remove(MyKey::Int(1i32));
}

依赖项

~3.5MB
~73K SLoC