pgrust 是一个用 Rust 从零重写的 PostgreSQL 数据库系统,不是简单的“包装器”或“客户端”,而是真正替代传统 C 版 Postgres 的完整服务端实现。它直面 PostgreSQL 长期存在的开发门槛高、内存安全风险、并发模型僵化等痛点,用现代语言重构核心,同时严守“行为兼容第一”的原则——目前已通过全部 PostgreSQL 官方回归测试(超 46,000 个用例),并支持直接挂载现有 Postgres 18.3 的数据目录,零迁移成本即可体验。
核心功能
- 100% 官方回归测试通过:严格对标 PostgreSQL 18.3 行为,所有 46,000+ 个回归查询输出完全一致,是目前最接近“drop-in 替代”级别的 Rust 实现。
- 磁盘级兼容:无需导出导入,可直接启动已有 Postgres 18.3 的 data 目录,WAL、堆表、索引、事务日志全部原生识别,生产环境平滑过渡成为可能。
- Rust 原生安全与并发模型:摒弃传统 fork/fork 或线程池架构,采用更清晰的“每个连接一个线程(thread-per-connection)”设计,结合 Rust 所有权机制,从根本上规避内存泄漏、数据竞争与 UAF 漏洞。
- 面向可维护性的架构设计:代码模块高度解耦,关键组件(解析器、执行器、存储引擎)边界清晰,大幅降低新增 SQL 功能、优化器规则或存储后端的开发复杂度。
- AI 辅助开发友好:项目明确将 AI 编程(如 Copilot、CodeWhisperer 等)作为核心开发范式,大量注释与模块契约专为大模型理解而设计,加速数据库内核的二次开发与教学研究。
- 开箱即用的浏览器 Demo:访问 pgrust.com 即可在线试用,执行 CREATE TABLE、JOIN 查询、事务控制等完整 SQL 操作,无需本地安装。
适合哪些人用
如果你是数据库内核开发者、数据库课程教师、SQL 引擎学习者,或正在评估 PostgreSQL 替代方案的基础设施工程师——pgrust 正为你而生。它不是给普通应用开发者替换 JDBC 连接字符串的“黑盒”,而是给想真正读懂、修改、扩展 PostgreSQL 的人一把“透明的手术刀”。学术团队可用它快速验证新查询优化算法;云厂商可基于其构建更轻量、更安全的托管数据库服务;开源贡献者能绕过 C 语言门槛,在 Rust 生态中参与世界级数据库建设。
快速上手
本地运行只需三步:
- 确保已安装 Rust 1.75+ 和 PostgreSQL 18.3(用于生成兼容数据目录)
- 克隆项目:
git clone https://github.com/malisper/pgrust && cd pgrust - 编译并启动:
cargo run --release -- --data-dir ./pgdata(首次运行会自动初始化兼容数据目录)
启动后即可用 psql -h localhost -p 5432 连接,所有 SQL 语法、扩展(如 pg_stat_statements)、权限体系与原生 Postgres 完全一致。详细文档与调试指南见项目 README。
项目信息
Postgres rewritten in Rust, now passing 100% of the Postgres regression tests
2.2k
今日 +774 stars today
Stars
58
Forks
Rust
AGPL-3.0
Rust | 2236 Star | AGPL-3.0 开源协议 | GitHub 项目地址
如果你相信数据库不该是不可触摸的“远古神庙”,而应是可读、可改、可演进的现代软件,pgrust 就是那把打开大门的 Rust 钥匙。


