#orm #sqlite #reader-writer #writer #reader

jsn-base

与 sqlite 类似的数据库。支持读写操作。

1 个不稳定版本

0.1.0 2024 年 1 月 11 日

#1142数据库接口

MIT 许可证

7KB
72

Jsn Base (JSON Base)

Rust License

Jsn Base 是一个数据库,类似于 sqlite。它支持读写。

用法

将此 crate 添加到您的 Cargo.toml 文件中

[dependencies]
jsn_base = "0.1.0"
use jsn_base::{Connection, Model};
use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
struct User {
    id: usize,
    name: String,
    email: String,
}

fn main() {
    let connection = Connection::new("my-app").unwrap();
    let mut model = Model::<User>::new("user", &connection);

    // load all previous datas
    model.load();

    // create a new data
    model.create(User {
        id: 0,
        name: String::from("Mahi"),
        email: String::from("email"),
    });

    // save current state of model
    model.save();

    // remove all
    model.removes(|_| true);

    // get specifice
    model.get(|user| user.id == 1);

    // get specifice users
    model.gets(|user| user.name.eq("Mahi"));

    // remove specifice
    model.remove(|user| user.name.eq("Mahi"));

    // remove some users
    model.removes(|user| user.name.eq("Me"));
}

功能

  • Modal.load():加载数据的先前状态。

  • Modal.create(payload):创建一个新的记录。

  • Modal.create(payloads):创建多个新的记录。

  • Modal.save():保存数据的当前状态。

  • Modal.get(fn):获取单个项。

  • Modal.gets(fn):获取多个项。

  • Modal.remove(fn):删除单个项。

  • Modal.removes(fn):删除多个项。

贡献

欢迎贡献!我希望你在这个项目中做出贡献。

路线图

该项目处于早期阶段,许多功能需要实现。请查看 问题 部分以获取功能、增强和错误修复的列表。

许可证

本项目采用 MIT 许可证 - 请参阅 LICENSE 文件以获取详细信息。

依赖关系

~0.6–1.4MB
~31K SLoC