一个类型安全的 TypeScript SQL 查询构建器,支持表、列与结果类型的自动补全。
transact-rs/sqlx
纯 Rust 的异步 SQL 工具库,可在编译期校验直接书写的 SQL,支持 PostgreSQL、MySQL/MariaDB 和 SQLite。
- Star
- 17,587
- Fork
- 1,750
- 未关闭 Issue
- 785
- 最近提交
- 4小时前
这是什么?
SQLx 是一个异步访问 SQL 数据库的 Rust 库。它不提供查询构建器或 DSL,而是直接书写普通 SQL 字符串,由查询宏在编译期连接开发数据库进行校验,语法和类型错误可以在程序运行前发现。它明确定位为非 ORM,行到结构体的映射通过派生宏或 `query_as` 完成。
该库内置连接池、行流式读取、预处理语句缓存、支持保存点的嵌套事务,并在 PostgreSQL 上支持 LISTEN/NOTIFY。Postgres 和 MySQL/MariaDB 驱动使用纯 Rust 实现且不含 unsafe 代码,SQLite 驱动则封装了 C 语言的 SQLite 库。它兼容 tokio 与 async-std 运行时,并可选 native-tls 或 rustls 作为 TLS 后端。
此外,`Any` 驱动允许应用根据连接 URL 的协议在运行时选择数据库后端。
核心功能
- 01通过查询宏在编译期校验 SQL,无需查询构建器 DSL。
- 02异步 API,内置连接池和行流式读取。
- 03支持 PostgreSQL、MySQL/MariaDB 和 SQLite。
- 04每个连接自动缓存预处理语句。
- 05支持带保存点的嵌套事务。
- 06PostgreSQL 支持 LISTEN/NOTIFY 异步通知。
- 07可搭配 tokio 或 async-std 运行时,以及 native-tls 或 rustls。
适用场景
- 构建以 PostgreSQL 或 MySQL 为后端的异步 Rust Web 服务。
- 编写手工优化的 SQL,同时在构建时发现与数据库结构不一致的问题。
- 在 Rust 应用中以异步方式嵌入 SQLite。
- 开发与具体数据库无关的工具,运行时根据 URL 选择驱动。
快速上手
- 1
在 Cargo.toml 中添加 sqlx,并选择运行时特性(runtime-tokio 或 runtime-async-std),可选再添加 TLS 特性
- 2
在 sqlx 的 features 列表中启用所需的数据库驱动(postgres、mysql 或 sqlite)
- 3
使用 PgPoolOptions(或对应的连接池类型)创建连接池,并按快速入门示例执行查询
使用前须知
- SQLite 驱动依赖 C 语言的 libsqlite3 库并使用 unsafe 代码,因此并非纯 Rust 实现。
- 编译期检查的查询宏需要构建时可访问开发数据库,除非使用离线模式。
- MSSQL 驱动在 0.7 版本之后已被移除,目前不受支持。
标签
常见问题
- sqlx 是什么?
- 纯 Rust 的异步 SQL 工具库,可在编译期校验直接书写的 SQL,支持 PostgreSQL、MySQL/MariaDB 和 SQLite。 SQLx 是一个异步访问 SQL 数据库的 Rust 库。它不提供查询构建器或 DSL,而是直接书写普通 SQL 字符串,由查询宏在编译期连接开发数据库进行校验,语法和类型错误可以在程序运行前发现。它明确定位为非 ORM,行到结构体的映射通过派生宏或 `query_as` 完成。
- sqlx 可以免费使用吗?用的什么许可证?
- sqlx 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- sqlx 还在维护吗?
- 活跃维护中。sqlx 最近一次提交是在 2026年10月21日。
- sqlx 适合用来做什么?
- 构建以 PostgreSQL 或 MySQL 为后端的异步 Rust Web 服务。 编写手工优化的 SQL,同时在构建时发现与数据库结构不一致的问题。 在 Rust 应用中以异步方式嵌入 SQLite。 开发与具体数据库无关的工具,运行时根据 URL 选择驱动。
- sqlx 怎么安装和运行?
- 在 Cargo.toml 中添加 sqlx,并选择运行时特性(runtime-tokio 或 runtime-async-std),可选再添加 TLS 特性 在 sqlx 的 features 列表中启用所需的数据库驱动(postgres、mysql 或 sqlite) 使用 PgPoolOptions(或对应的连接池类型)创建连接池,并按快速入门示例执行查询
- 在哪里获取 sqlx?
- 源代码和安装说明在 GitHub 上:https://github.com/transact-rs/sqlx
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向 Rust 的安全、可扩展 ORM 与查询构建器,支持 PostgreSQL、MySQL、SQLite 和 MariaDB。
轻量级、无头的 TypeScript ORM,支持 PostgreSQL、MySQL 和 SQLite,可运行于 Node.js、Bun、Deno 及边缘运行时。
面向 Node.js 与 TypeScript 的 ORM,支持 PostgreSQL、MySQL、SQLite 等多种数据库。
跨平台 SQL 编辑器与数据库管理工具,支持 Linux、macOS 和 Windows,可连接 MySQL、PostgreSQL、SQLite 等多种数据库。
SQL 编译器,读取 SQL 查询并生成类型安全的 Go、Kotlin、Python 和 TypeScript 代码。