4 个版本
使用旧的 Rust 2015
0.1.3 | 2018年3月18日 |
---|---|
0.1.2 | 2018年3月18日 |
0.1.1 | 2018年3月17日 |
0.1.0 | 2018年3月17日 |
#34 在 #key-file
11KB
197 行
单键单文件数据库
okofdb
是一个 键值数据库。
设计目标
- 非常高效的数据存储
- 小内存占用
- 最小化接口
- ACD | 原子性 一致性 持久性
- 仅支持多读,不支持多写
- 无应用程序状态
如果您需要多个并发写者,同步是您应用程序的责任。根据您的用例,可能是一种非常愚蠢的数据存储方式。
超过定义的值大小阈值时,将使用 snap 来压缩值。
示例
extern crate okofdb;
use okofdb::okof;
use std::path::Path;
fn main() {
let path = Path::new("dbdir");
let key = "test";
let value = b"Hello, world!";
okof::write(&path, &key, value).unwrap();
assert_eq!(okof::read(&path, &key).unwrap(), value);
let other_value = String::from("Other value");
okof::write(&path, &key, other_value.as_bytes()).unwrap();
assert_eq!(okof::read(&path, &key).unwrap(), other_value.as_bytes());
okof::delete(&path, &key).unwrap();
match okof::read(&path, &key) {
Err(okof::Error::NotFound) => (),
_ => { assert!(false); },
}
}
入门
将 这个包 添加到您的项目中。
先决条件
Rust 工具链和 cargo。
注意,某些文件系统可能难以处理单个目录中的大量文件,这将在有大量键时发生。
一个键 == 一个文件。
安装
运行测试
cargo test
部署
待定
贡献
请阅读 CONTRIBUTING.md 以了解我们的行为准则和向提交拉取请求给我们的流程。
版本控制
我们使用 SemVer 进行版本控制。有关可用的版本,请参阅该存储库的 标签。
作者
- Lukas Bergdoll - 初始工作 - Voultapher
有关参与此项目的 贡献者列表,请参阅。
许可
本项目采用 Apache License,版本 2.0 — 请参阅 LICENSE.md 文件以了解详细信息。
依赖项
~250KB