2 个不稳定版本
0.2.0 | 2021 年 5 月 13 日 |
---|---|
0.1.0 | 2020 年 11 月 30 日 |
#158 in 数据库实现
25KB
304 行
Koit
Koit 是一个简单、异步、纯 Rust、结构化、嵌入式数据库。
[dependencies]
koit = "0.2"
示例
use std::default::Default;
use koit::{FileDatabase, format::Json};
use serde::{Deserialize, Serialize};
#[derive(Default, Deserialize, Serialize)]
struct Data {
cats: u64,
yaks: u64,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let db = FileDatabase::<Data, Json>::load_from_path_or_default("./db.json").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 格式器和 Bincode 格式器。您可以选择使用功能。
[dependencies.koit]
version = "0.2"
default-features = false
features = ["bincode-format"]
用途
Koit 使快速实现结构化数据的持久性和并发访问变得容易。它旨在用于相对较小的数据量(兆字节)。
它不是一个性能数据库。加载时,整个数据结构都保存在内存中。保存时,整个数据结构被格式化并写入存储后端。
其他 crate
Koit 受到 Rustbreak 的启发,这是一个类似(同步)的数据库。
许可证
本项目采用 MIT 许可证。
贡献
除非您明确声明,否则您提交给 Koit 的任何有意贡献均应按 MIT 许可,无任何附加条款或条件。
依赖项
~2.6–4.5MB
~75K SLoC