3个版本
0.1.2 | 2024年5月7日 |
---|---|
0.1.1 | 2024年5月6日 |
0.1.0 | 2024年5月6日 |
1835 在 数据库接口 中
每月24次下载
41KB
1K SLoC
这是一个WIP rust查询构建器。
WIP意味着它可能还不适合您的项目,但您可以尝试使用它并给我反馈。
想法是深度嵌入,这意味着我们为查询重用Rust概念
- 查询 ~ 函数
- 列 ~ 变量
- 作用域 ~ 生命周期
- 查询阶段 ~ 可变性
以这种方式使用Rust类型系统的全部表现力,使我们能够编写在运行时不会失败并获取(很好的)错误信息的查询。
当前限制
这是一个WIP项目,因此存在许多限制。
- 仅支持sqlite(使用rusqlite)。
- 仅支持select和insert语句。
- 操作符数量非常少。
- 不支持窗口函数。
- 等等。
尽管有这些限制,我仍在狗食这个查询构建器,并在自己的项目中使用它:advent-of-wasm。
如何使用
- 在您的
build.rs
文件中使用schema::generate
来创建您的模式的绑定。(见下面的示例), - 使用
Client
或rusqlite::Connection
上的new_query
函数开始编写查询!
示例/练习
首先从这里下载 Chinook_Sqlite.sql
https://github.com/lerocha/chinook-database/releases 并将其放在 chinook
文件夹中。
然后您可以使用 cd chinook
&& cargo run
来运行。
那里有一些查询,您可以实施以测试查询构建器。
依赖关系
~23MB
~449K SLoC