9个版本
0.1.3-alpha.6 | 2024年4月24日 |
---|---|
0.1.3-alpha.5 | 2023年7月22日 |
0.1.2 | 2023年4月26日 |
0.1.1 | 2023年3月12日 |
376 在 数据库接口 中
每月74次下载
用于 2 个Crates(通过 teo-sql-connector)
1MB
21K SLoC
Quaint
注意
此项目是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