9个版本

0.1.3-alpha.62024年4月24日
0.1.3-alpha.52023年7月22日
0.1.2 2023年4月26日
0.1.1 2023年3月12日

376数据库接口

Download history 127/week @ 2024-04-23 82/week @ 2024-04-30 79/week @ 2024-05-07 78/week @ 2024-05-14 33/week @ 2024-05-21 22/week @ 2024-05-28 43/week @ 2024-06-04 43/week @ 2024-06-11 13/week @ 2024-06-18 12/week @ 2024-06-25 22/week @ 2024-07-02 13/week @ 2024-07-09 12/week @ 2024-07-16 49/week @ 2024-07-30

每月74次下载
用于 2 个Crates(通过 teo-sql-connector

Apache-2.0

1MB
21K SLoC

Quaint

docs.rs Cargo tests Discord

注意

此项目是Prisma的quaint的分支。

简介

Quaint是某些SQL数据库的抽象层。它提供

  • 用于构建动态SQL查询的AST。
  • 不同数据库的访问者以生成SQL字符串。
  • 连接器以抽象结果和查询。
  • mobc进行连接池
  • Async/await和Futures 0.3

文档

功能标志

  • mysql:支持MySQL数据库。
  • postgresql:支持PostgreSQL数据库。
  • sqlite:支持SQLite数据库。
  • mssql:支持Microsoft SQL Server数据库。
  • pooled:在 pooled::Quaint 中的连接池。
  • json:通过 serde_json crate 支持JSON类型。
  • uuid:通过 uuid crate 支持UUID类型。
  • chrono:通过 chrono crate 支持DateTime类型。
  • serde-support:使用 serde crate 从结果集反序列化支持。
  • bigdecimal:数值可以读取为 BigDecimal
  • vendored-openssl:在非Windows或非Apple平台上静态链接到供应商的OpenSSL库。
  • fmt-sql:启用格式化日志SQL查询。必须存在 FMT_SQL 环境变量才能启用格式化。

目标

  • 在不知道数据库和条件的情况下生成查询。
  • 参数化查询和SQL注入保护。
  • 模块化设计,独立的AST以及独立的访问者和连接器。

非目标

  • 在查询构建或作为ORM时在数据库级别提供类型安全性。

对于类型安全的数据库抽象,Diesel是一个优秀的选择。

测试

  • 查看.envrc以获取连接参数。如果不同则覆盖变量。MySQL、PostgreSQL和SQL Server需要运行才能使测试成功。

然后

> cargo test

查询调试

可以通过将环境变量LOG_QUERIES设置为任何值来记录查询。它们将以INFO级别记录,并在作用域内有记录器时可见。

可以使用环境变量FMT_SQL来记录格式化的SQL查询。注意,必须启用fmt-sql功能。

安全性

如果您有安全问题要报告,请联系我们[email protected]

依赖关系

~3–23MB
~373K SLoC