#结构化 #嵌入式数据库 #异步 #非阻塞 #数据库 #JSON/Toml #嵌入式

koit-toml

一个简单、异步、纯Rust、结构化、嵌入式数据库

2个版本

0.2.1 2021年5月20日
0.2.0 2021年5月20日

166数据库实现

每月40次 下载
用于 rmw

MIT 许可证

24KB
328

Koit

Crates.io MIT licensed

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