这个项目能做什么

SQLx 是一个用于在应用代码中执行 SQL 的异步 Rust 库。它明确不是 ORM,也不提供 Rust 查询构建器 DSL;开发者编写普通 SQL 字符串。可选的 `query!` 和 `query_as!` 宏会在构建时连接开发数据库,以校验查询语法、绑定参数和结果结构。此校验需要提供具有兼容 schema 的 `DATABASE_URL`,而 `sqlx` CLI 可以缓存查询元数据以支持离线构建。 支持的数据库包括 PostgreSQL、MySQL、MariaDB 和 SQLite。MSSQL 支持在 0.7 版本之前存在,但在驱动重写之前已被移除。PostgreSQL 和 MySQL/MariaDB 驱动使用纯 Rust 编写;SQLite 使用 libsqlite3 C 库,启用该特性时,不安全代码仅限于 SQLite 集成部分。 该工具包包含内置连接池、单连接 API、异步行流式读取、`fetch`、`fetch_one`、`fetch_optional` 和 `fetch_all` 辅助函数、参数绑定、自动预编译语句缓存、非预编译和批量查询执行、网络数据库的 TLS 支持、PostgreSQL `LISTEN`/`NOTIFY`、带保存点的嵌套事务,以及可在运行时根据连接 URL 选择数据库后端的 `Any` 驱动。 SQLx 可与 Tokio、async-std 和 Actix 兼容的运行时配合使用,并通过 Cargo 特性提供 native-tls 或 rustls 后端选项。其他特性还提供 `FromRow` 等派生宏、迁移管理和嵌入式迁移,以及与 UUID、日期/时间库、JSON、十进制类型、IP 网络类型和字节字符串的集成。 它在所有支持 Rust 的平台上均可跨平台使用,并采用 Apache License 2.0 和 MIT 双许可。