如果你是一名后端开发者,PostgreSQL 几乎是你绕不开的数据库。它稳定、强大、功能丰富——但 40 年的 C 语言代码积累也让它在某些方面显得笨重。最近,一个名为 pgrust 的项目在 GitHub Trending 上引起了轰动:开发者用 Rust 完全重写了 PostgreSQL,并且通过了 100% 的回归测试(超过 46,000 条查询),日增 500+ star。
什么是 pgrust?
pgrust 是由 Michael Malis(前 Heap 工程师,PostgreSQL 深度用户)发起的项目,目标是用 Rust 从零开始重建 PostgreSQL 18.3,保持完全兼容。
项目的核心理念是:保持行为与 PostgreSQL 完全一致,但用更现代的技术栈重构底层。它甚至可以直接从现有的 PostgreSQL 18.3 数据目录启动,磁盘格式完全兼容。
为什么值得关注?
1. 从进程模型到线程模型
PostgreSQL 使用进程模型(fork 子进程处理连接),这在 40 年前是合理的,但现代场景下进程开销太大。pgrust 采用 Rust 的线程模型,在多连接场景下性能大幅提升。据作者测试,在线程模型下的简单基准中,单查询性能可提升 3 倍。
2. 惊人的开发速度(AI 辅助)
作者仅用了两周时间就写出了 25 万行 Rust 代码,复现了 PostgreSQL 的所有主要子系统。工作流程是:用 Codex 分析 PostgreSQL 源码理解每个组件 → 用 Rust 编写最小可行版本 → 与 PostgreSQL 的 5 万条回归测试比对。没有 AI 编码助手,这种速度根本不可能。
3. 最新版性能数据
根据项目最新更新,pgrust 正在开发的新版本取得了惊人的成绩:
- ✅ 通过 100% PostgreSQL 回归测试
- ✅ 线程模型替代进程模型
- 🚀 事务负载比 PostgreSQL 快 50%
- 🚀 分析负载比 PostgreSQL 快约 300 倍
- 🚀 ClickBench 基准测试仅比 ClickHouse 慢 2 倍(有望超越)
性能为何能提升这么多?
关键原因包括:
- 多线程内核:不需要每次 fork 进程,减少上下文切换开销
- 内置连接池:不需要额外部署 PgBouncer 之类的连接池
- 更好的 JSON 支持:PostgreSQL 不收集 JSONB 列的统计信息,pgrust 可以
- SIMD 加速正则:Rust 正则引擎使用 SIMD 指令,比 Postgres 的 C 实现快 10 倍
快速体验
在线 Demo
可以直接在浏览器中体验 WASM 编译版本的 pgrust:pgrust.com
Docker 运行
docker run -d --name pgrust -e POSTGRES_PASSWORD=secret malisper/pgrust:v0.1
# 等待启动后
docker exec -it -e PGPASSWORD=secret pgrust psql -h 127.0.0.1 -U postgres
# 验证版本
select version(), 1 + 1 as two;
从源码构建(macOS)
brew install icu4c openssl@3 libpq
export LIBRARY_PATH="$(brew --prefix openssl@3)/lib:$LIBRARY_PATH"
export PKG_CONFIG_PATH="$(brew --prefix openssl@3)/lib/pkgconfig:$(brew --prefix icu4c)/lib/pkgconfig:$PKG_CONFIG_PATH"
cargo build --release --locked --bin postgres
# 初始化数据目录
target/release/postgres --initdb -D /tmp/pgrust-data -U postgres --no-locale --encoding UTF8
# 启动
RUST_MIN_STACK=33554432 target/release/postgres -D /tmp/pgrust-data -F -k /tmp -p 5432
从源码构建(Ubuntu/Debian)
sudo apt-get install -y build-essential pkg-config libicu-dev libssl-dev libldap2-dev libpam0g-dev postgresql-client-18
cargo build --release --locked --bin postgres
未来的可能性
pgrust 的野心不止于”性能更好的 PostgreSQL”,作者还规划了很多激动人心的方向:
- 🔧 不依赖 Vacuum 的存储引擎设计(PostgreSQL 最头疼的问题之一)
- 🔧 快速 Fork 和 Branch 数据库(类似 Git 的分支工作流)
- 🔧 AI 生成 SQL 的运行时护栏
- 🔧 更好的执行计划稳定性(减少突然的性能退化)
注意事项
pgrust 目前还不是生产就绪的——它仍处于早期开发阶段,性能优化尚未完成。现有的 PostgreSQL 扩展和过程语言扩展(如 PL/Python、PL/Perl)还不兼容。但部分内置 contrib 模块已被移植。
项目采用 AGPL-3.0 许可证。
总结
pgrust 代表了数据库领域一个令人兴奋的方向:保留 PostgreSQL 的生态和兼容性,用现代语言彻底重构底层实现。两周写出 25 万行代码、通过 100% 回归测试、分析负载快 300 倍——这些数字本身就说明了一切。
如果你对数据库底层感兴趣、或者正在为 PostgreSQL 的性能瓶颈头疼,这个项目值得持续关注。
GitHub 地址:github.com/malisper/pgrust
















cqlbgzs@163.com 1年前0
d好879445037@qq.com 2年前0
购买了 无法下载Alexcc 3年前0
强大Alexcc 3年前0
看不了教程Alexcc 3年前0
雷刺下载Alexcc 3年前0
下载Alexcc 3年前0
下载dsa456159 3年前0
下载