27 个版本

0.2.0-alpha.132020年6月16日
0.2.0-alpha.122020年5月20日
0.2.0-alpha.112020年3月26日
0.2.0-alpha.92020年2月28日
0.1.4 2019年12月30日

#2400数据库接口 中排名

Download history 32/week @ 2024-03-13 17/week @ 2024-03-20 41/week @ 2024-03-27 41/week @ 2024-04-03 15/week @ 2024-04-10 35/week @ 2024-04-17 13/week @ 2024-04-24 24/week @ 2024-05-01 13/week @ 2024-05-08 67/week @ 2024-05-15 90/week @ 2024-05-22 83/week @ 2024-05-29 49/week @ 2024-06-05 85/week @ 2024-06-12 71/week @ 2024-06-19 54/week @ 2024-06-26

每月 275 次下载

Apache-2.0

555KB
12K SLoC

Quaint

docs.rs Build status Discord

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