9个版本

0.4.2 2022年4月25日
0.4.1 2021年12月15日
0.3.0 2021年10月20日
0.1.4 2019年5月20日

#2432数据库接口

Download history 5/week @ 2024-06-27 62/week @ 2024-07-04 19/week @ 2024-07-25

81 每月下载次数
4 个Crate中(2个直接) 使用

MIT/Apache

380KB
9K SLoC

Toql - 一个友好且高效的ORM

Tests Current Crates.io Version

入门指南 | API文档

Toql是一个异步数据库的ORM,具有以下特性

  • 在Rust结构和数据库表之间进行转换。
  • 可以加载和修改嵌套结构。
  • 独特的简单查询语言,适合Web客户端。
  • 从长且可读的别名到短且快速的别名。
  • 针对SQL注入的准备语句。
  • 支持原始SQL以充分利用数据库功能。
  • 支持基于角色的访问。
  • 通过用户定义的参数、查询函数、字段处理器等高度可定制。
  • 查询、字段和路径名称的编译时安全性。
  • 没有不安全的Rust代码。
  • 在真实场景下进行了测试。

它目前只支持 MySQL。更多即将到来,敬请期待 :)

安装

将此添加到您的 Cargo.toml

[dependencies]
toql = {version = "0.4", features = ["serde"]}
toql_mysql_async = "0.4"

外观和感觉

派生您的结构体

#[derive(Toql)]
#[toql(auto_key)]
struct Todo {
    #[toql(key)]
    id: u64,
    what: String,

    #[toql(join)]
    user: User 
}

并使用它们

let toql = ...
let todo = Todo{ ... };

// Insert todo and update its generated id
toql.insert_one(&mut todo, paths!(top)).await?; 

// Compile time checked queries!
let q = query!(Todo, "*, user_id eq ?", &todo.user.id); 

// Typesafe loading
let todos = toql.load_many(q).await?; 

快速入门

查看CRUD示例

贡献

欢迎评论、错误修复和质量改进。

许可证

Toql根据MIT许可证和Apache许可证(版本2.0)的条款分发。

依赖关系

~7–9.5MB
~162K SLoC