#极简 #存储 #学生 #API #文件 # #持久

sleded

轻松将数据持久化存储到文件的最简 API

3 个版本 (1 个稳定版)

1.0.0 2022 年 8 月 21 日
0.1.1 2022 年 7 月 7 日
0.1.0 2022 年 7 月 7 日

#174数据库实现

MIT 许可证

10KB
238

Sleded

一个 sled-ed 数据库。

描述

一个简单的 crate,提供了将持久数据存储到文件的极简 API。由 sled、serde 和 RON 支持。

示例

// Something to store, needs to be serializable.
#[derive(Debug, Serialize, Deserialize)]
pub struct Student {
    name: String,
    value: usize,
}

impl TableLayout for Student {
    // adding the name of the stored table.
    fn table_name() -> String {
        "student".into()
    }
}

// storing an item
let db = open("./db").unwrap();
let table = db.table();
let bob_key = table.push(Student {
    name: "bob".into(),
    value: 0,
});

// query one item
let bob = table.get(&bob_key);
dbg!(bob);

// query all items
for (key, value) in table.iter() {
    let key = key.value(&table);
    println!("key: {key}, student: {value:?}");
}

// update items
for key in table.keys() {
    table.update(&key, |student| {
        if let Some(student) = student {
            student.value += 1;
        }
    })
}

待办事项

  • 存储东西。
  • 按类型存储表。
  • 更好的错误处理。
  • 生成迁移。

依赖项

~2–3MB
~55K SLoC