2个版本
0.2.1 | 2021年5月20日 |
---|---|
0.2.0 | 2021年5月20日 |
166 在 数据库实现 中
每月40次 下载
用于 rmw
24KB
328 行
Koit
Koit是一个简单、异步、纯Rust、结构化、嵌入式数据库。
[dependencies]
koit = "0.2"
示例
use std::default::Default;
use koit::{FileDatabase, format::Toml};
use serde::{Deserialize, Serialize};
#[derive(Default, Deserialize, Serialize)]
struct Data {
cats: u64,
yaks: u64,
}
#[async_std::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let db = FileDatabase::<Data, Toml>::load_from_path_or_default("./db.toml").await?;
db.write(|data| {
data.cats = 10;
data.yaks = 32;
}).await;
assert_eq!(db.read(|data| data.cats + data.yaks).await, 42);
db.save().await?;
Ok(())
}
特性
- 内置、支持未来感知的读写同步
- 与任意数据格式器兼容
- 与任意存储后端兼容
- 附带默认的格式器和后端,适用于更多用途
默认情况下,Koit附带其文件后端、JSON / Toml格式器和Bincode格式器启用。您可以选择功能。
[dependencies.koit]
version = "0.2"
default-features = false
features = ["toml-format"]
目的
Koit允许快速实现结构化数据的持久性和并发访问。它旨在用于相对较小的数据量(兆字节)。
它不是一个性能数据库。在加载时,整个数据结构保存在内存中。在保存时,整个数据结构被格式化并写入存储后端。
其他crate
Koit受到Rustbreak的启发,这是一个类似的(同步)数据库。
许可证
本项目采用MIT许可证。
贡献
除非您明确声明,否则您有意提交给Koit的任何贡献都应按照MIT许可证,不附加任何额外条款或条件。
依赖关系
~5–17MB
~208K SLoC