10 releases
0.1.3-alpha.7 | Oct 27, 2024 |
---|---|
0.1.3-alpha.6 | Apr 24, 2024 |
0.1.3-alpha.5 | Jul 22, 2023 |
0.1.2 | Apr 26, 2023 |
0.1.1 | Mar 12, 2023 |
#850 in Database interfaces
118 downloads per month
Used in 2 crates
(via teo-sql-connector)
1MB
21K
SLoC
Quaint
Notice
This project is a fork of Prisma's quaint.
Introduction
Quaint is an abstraction over certain SQL databases. It provides:
- An AST for building dynamic SQL queries.
- Visitors for different databases to generate SQL strings.
- Connectors to abstract over results and querying.
- Pooling with mobc
- Async/await and Futures 0.3
Documentation
Feature flags
mysql
: Support for MySQL databases.postgresql
: Support for PostgreSQL databases.sqlite
: Support for SQLite databases.mssql
: Support for Microsoft SQL Server databases.pooled
: A connection pool inpooled::Quaint
.json
: JSON type support withserde_json
crate.uuid
: UUID type support withuuid
crate.chrono
: DateTime type support withchrono
crate.serde-support
: Deserialize support from result set withserde
crate.bigdecimal
: Numeric values can be read asBigDecimal
.vendored-openssl
: Statically links against a vendored OpenSSL library on non-Windows or non-Apple platforms.fmt-sql
: Enables logging SQL queries formatted. TheFMT_SQL
env var must be present for the formatting to be enabled.
Goals:
- Query generation when the database and conditions are not known beforehand.
- Parameterized queries and SQL injection protection.
- A modular design, a separate AST and separate visitors and connectors.
Non-goals:
- Database-level type-safety in query building or being an ORM.
For type-safe database abstraction, Diesel is an excellent choice.
Testing:
- See
.envrc
for connection params. Override variables if different. MySQL, PostgreSQL and SQL Server needs to be running for tests to succeed.
Then:
> cargo test
Query debug
The queries can be logged by setting the LOG_QUERIES
environment variable to any
value. They'll be logged at the INFO
level and are visible when having a
logger in scope.
The FMT_SQL
environment variable can be used to log formatted SQL queries. Beware, the fmt-sql
feature must be enabled too.
Security
If you have a security issue to report, please contact us at security@prisma.io
Dependencies
~3–24MB
~366K SLoC