3个版本

0.1.2 2024年5月7日
0.1.1 2024年5月6日
0.1.0 2024年5月6日

1835数据库接口

每月24次下载

Apache-2.0

41KB
1K SLoC

这是一个WIP rust查询构建器。

WIP意味着它可能还不适合您的项目,但您可以尝试使用它并给我反馈。

想法是深度嵌入,这意味着我们为查询重用Rust概念

  • 查询 ~ 函数
  • 列 ~ 变量
  • 作用域 ~ 生命周期
  • 查询阶段 ~ 可变性

以这种方式使用Rust类型系统的全部表现力,使我们能够编写在运行时不会失败并获取(很好的)错误信息的查询。

当前限制

这是一个WIP项目,因此存在许多限制。

  • 仅支持sqlite(使用rusqlite)。
  • 仅支持select和insert语句。
  • 操作符数量非常少。
  • 不支持窗口函数。
  • 等等。

尽管有这些限制,我仍在狗食这个查询构建器,并在自己的项目中使用它:advent-of-wasm

如何使用

  • 在您的 build.rs 文件中使用 schema::generate 来创建您的模式的绑定。(见下面的示例),
  • 使用 Clientrusqlite::Connection 上的 new_query 函数开始编写查询!

示例/练习

首先从这里下载 Chinook_Sqlite.sql https://github.com/lerocha/chinook-database/releases 并将其放在 chinook 文件夹中。

然后您可以使用 cd chinook && cargo run 来运行。

那里有一些查询,您可以实施以测试查询构建器。

依赖关系

~23MB
~449K SLoC