27 个版本
0.2.0-alpha.13 | 2020年6月16日 |
---|---|
0.2.0-alpha.12 | 2020年5月20日 |
0.2.0-alpha.11 | 2020年3月26日 |
0.2.0-alpha.9 | 2020年2月28日 |
0.1.4 | 2019年12月30日 |
#2400 在 数据库接口 中排名
每月 275 次下载
555KB
12K SLoC
Quaint
Quaint 是某些 SQL 数据库的抽象层。它提供
- 用于构建动态 SQL 查询的抽象语法树(AST)。
- 用于生成 SQL 字符串的不同数据库的访问者。
- 用于抽象结果和查询的连接器。
- 与 mobc 池化
- Async/await 和 Futures 0.3
文档
功能标志
full
: 所有连接器和池化的Quaint
管理器full-postgresql
: PostgreSQL 的池化支持full-mysql
: MySQL 的池化支持full-sqlite
: SQLite 的池化支持full-mssql
: Microsoft SQL Server 的池化支持single
: 所有连接器,但没有池化single-postgresql
: PostgreSQL 的单连接支持single-mysql
: MySQL 的单连接支持single-sqlite
: SQLite 的单连接支持single-mssql
: Microsoft SQL Server 的单连接支持
目标
- 在不知道数据库和条件的情况下生成查询。
- 参数化查询和 SQL 注入保护。
- 模块化设计,独立的 AST、独立的访问者和连接器。
非目标
- 在查询构建或作为 ORM 时在数据库级别提供类型安全。
对于类型安全的数据库抽象,Diesel 是一个很好的选择。
测试
- 请参阅
.envrc
以获取连接参数。如果不同,请覆盖变量。MySQL、PostgreSQL 和 SQL Server 需要运行才能成功执行测试。
然后
> cargo test
查询调试
可以通过设置环境变量 LOG_QUERIES
为任何值来记录查询。它们将以 INFO
级别记录,并且当存在日志记录器作用域时可见。如果使用 Tracing,编译时开启 tracing-log
功能标志将使记录的查询以适合 Tracing 的格式进行参数化。
依赖项
~3–22MB
~357K SLoC