一个类型安全的 TypeScript SQL 查询构建器,支持表、列与结果类型的自动补全。
diesel-rs/diesel
面向 Rust 的安全、可扩展 ORM 与查询构建器,支持 PostgreSQL、MySQL、SQLite 和 MariaDB。
- Star
- 14,212
- Fork
- 1,252
- 未关闭 Issue
- 172
- 最近提交
- 前天
这是什么?
Diesel 是一个 Rust 的 ORM 与查询构建器,省去了把数据库行映射为结构体时的重复代码,并尽量把错误提前到编译期发现。它利用 Rust 的类型系统构建 SQL 查询,写法接近普通 Rust 代码,涵盖查询、过滤、排序、子查询、插入和更新等操作。
模型通过 Queryable、Selectable、Insertable 等派生宏以结构体形式声明,Diesel 据此生成行映射代码。当查询构建器无法满足需求时,开发者也可以用 sql_query 编写原生 SQL 并绑定带类型的参数。
该库支持 PostgreSQL、MySQL、SQLite 和 MariaDB,通过 Cargo 的 feature 选择数据库后端。项目官网提供入门教程,使用问题可在 GitHub Discussions 讨论。
核心功能
- 01基于 Rust 类型在编译期检查查询
- 02通过派生宏为结构体生成行映射代码
- 03提供查询、过滤、排序和子查询的构建器
- 04支持用结构体进行插入和更新,并可返回写入的行
- 05原生 SQL 查询支持带类型的参数绑定
适用场景
- 为连接 PostgreSQL 或 MySQL 的 Rust Web 后端编写数据访问层
- 在 Rust 命令行工具或服务中实现类型安全的数据库操作
- 在 Rust 桌面或嵌入式应用中使用 SQLite
快速上手
- 1
在 Cargo.toml 中添加 diesel 并选择你的数据库后端特性
- 2
按照 diesel.rs 上的入门教程操作
使用前须知
- 除入门教程外,针对具体功能的指南仍在编写中。
标签
常见问题
- diesel 是什么?
- 面向 Rust 的安全、可扩展 ORM 与查询构建器,支持 PostgreSQL、MySQL、SQLite 和 MariaDB。 Diesel 是一个 Rust 的 ORM 与查询构建器,省去了把数据库行映射为结构体时的重复代码,并尽量把错误提前到编译期发现。它利用 Rust 的类型系统构建 SQL 查询,写法接近普通 Rust 代码,涵盖查询、过滤、排序、子查询、插入和更新等操作。
- diesel 可以免费使用吗?用的什么许可证?
- diesel 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- diesel 还在维护吗?
- 活跃维护中。diesel 最近一次提交是在 2026年10月20日。
- diesel 适合用来做什么?
- 为连接 PostgreSQL 或 MySQL 的 Rust Web 后端编写数据访问层 在 Rust 命令行工具或服务中实现类型安全的数据库操作 在 Rust 桌面或嵌入式应用中使用 SQLite
- diesel 怎么安装和运行?
- 在 Cargo.toml 中添加 diesel 并选择你的数据库后端特性 按照 diesel.rs 上的入门教程操作
- 在哪里获取 diesel?
- 源代码和安装说明在 GitHub 上:https://github.com/diesel-rs/diesel
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向 Node.js 等 JS 平台的 TypeScript/JavaScript ORM,同时支持 Active Record 与 Data Mapper 模式。
面向 Node.js 与 TypeScript 的 ORM,提供类型安全的数据库访问,支持 PostgreSQL、MySQL、SQLite、MongoDB 等。
纯 Rust 的异步 SQL 工具库,可在编译期校验直接书写的 SQL,支持 PostgreSQL、MySQL/MariaDB 和 SQLite。
轻量级、无头的 TypeScript ORM,支持 PostgreSQL、MySQL 和 SQLite,可运行于 Node.js、Bun、Deno 及边缘运行时。
面向 Node.js 与 TypeScript 的 ORM,支持 PostgreSQL、MySQL、SQLite 等多种数据库。