pgrust:用 Rust 重写 PostgreSQL 的革命性数据库项目完整解析

📅 发布时间:2026/8/16 20:44:44
pgrust:用 Rust 重写 PostgreSQL 的革命性数据库项目完整解析 pgrust用 Rust 重写 PostgreSQL 的革命性数据库项目完整解析【免费下载链接】pgrustPostgres rewritten in Rust, now faster than Postgres and Clickhouse项目地址: https://gitcode.com/GitHub_Trending/pg/pgrustpgrust是一个用 Rust 语言完整重写 PostgreSQL 的开源数据库项目以 PostgreSQL 18.3 为兼容目标已通过超过 46,000 条官方回归查询测试并宣称在事务负载上比原版快 50%、在分析负载上快约 300 倍。本文将从项目背景、核心亮点、真实性能数据、安装体验、源码结构到路线图为你带来一次关于这个 Rust 重写 PostgreSQL 项目的完整解析。pgrust 是什么为什么有人要用 Rust 重写 PostgreSQLPostgreSQL 是世界上最流行的开源关系型数据库之一但它的核心代码由 C 语言写成历经 30 余年积累体量庞大、内部耦合深。C 语言带来了极致性能却也带来了内存安全风险、进程级并发模型老旧、难以从内部深度改造等现实问题。pgrust 的诞生正是为了改变这一切用 Rust 这门以内存安全和零成本抽象著称的现代语言配合 AI 辅助编程把 PostgreSQL 的核心逐行重写同时坚持一个黄金准则——保持行为与 PostgreSQL 完全一致。简单概括 pgrust 的三个关键词兼容目标是 100% 兼容 PostgreSQL 18.3 的行为可验证以 PostgreSQL 官方回归测试作为判官更快从内部改造并发与存储模型追求质的飞跃pgrust 与普通分叉的本质区别很多数据库项目只是在 PostgreSQL 上打补丁而 pgrust 是从零重写内核。它没有沿用 C 语言的进程模型而是探索多线程、连接池内建等全新架构。这意味着它不仅仅是快一点而是从根上改变了数据库的运行方式。pgrust 核心亮点兼容性、回归测试与磁盘兼容兼容 PostgreSQL 18.3行为级对齐pgrust 明确以PostgreSQL 18.3为兼容基准并在持续迭代中逼近完全一致。开发团队将真实 PostgreSQL 测试作为预言机任何行为差异都会被测试暴露并修正。通过 46,000 回归查询验证这是 pgrust 最硬核的亮点之一项目已匹配 PostgreSQL 官方回归套件的预期输出累计超过 46,000 条回归查询全部通过。最新未发布版本更是宣称100% 通过完整回归套件。这意味着你在 PostgreSQL 上写的大多数 SQLpgrust 都能给出同样的结果。磁盘级兼容迁移近乎零成本pgrust 与 PostgreSQL磁盘格式兼容可以直接从一个已有的 PostgreSQL 18.3 数据目录启动。换句话说不需要导出导入、不需要重建索引现有数据文件可以直接换引擎运行。对比维度PostgreSQL (C)pgrust (Rust)内核语言CRust兼容目标自身PostgreSQL 18.3回归测试官方套件46,000 查询通过磁盘兼容——可直接启动 PG 数据目录并发模型进程 per 连接线程 per 连接新版pgrust 性能揭秘比 PostgreSQL 快多少与 ClickHouse 对比如何性能是 pgrust 最吸引眼球的部分。根据官方公布的数据最新未发布版本⚡事务负载比 PostgreSQL快约 50%分析负载比 PostgreSQL快约 300 倍️ClickBench 基准目前比 ClickHouse慢约 2 倍但团队认为完全可以进一步超越项目定位语非常霸气现在比 PostgreSQL 和 ClickHouse 都快。虽然公开版本还未完全兑现但方向已经非常明确——用 Rust 彻底释放 PostgreSQL 的潜力。为什么能快这么多核心在于架构革新线程替代进程传统 PostgreSQL 每个连接一个进程上下文切换开销巨大pgrust 改为每连接一个线程资源占用大幅降低内建连接池省去外部连接池组件的转发开销存储实验探索免 VACUUM无清理设计减少维护成本如何快速体验 pgrustDocker 一键启动教程想最快体验 pgrust最简单的方式是使用官方 Docker 镜像镜像与官方 postgres 镜像完全兼容支持 POSTGRES_PASSWORD、POSTGRES_USER 等常用环境变量docker run -d --name pgrust -e POSTGRES_PASSWORDsecret malisper/pgrust:v0.1等待容器就绪后即可用容器内的 psql 客户端连接docker exec -it -e PGPASSWORDsecret pgrust psql -h 127.0.0.1 -U postgres连接成功后输入一条最简单的 SQL 验证select version(), 1 1 as two;如果看到 PostgreSQL 风格的版本输出说明 pgrust 已经跑起来了 此外官方还提供浏览器内 WebAssembly 演示无需安装任何东西就能在线体验非常适合初学者先试个水。小提示Dockerfile 是一个官方 postgres 镜像的平替实现保留了相同的环境变量约定与初始化脚本语义替换成本极低。感兴趣可查看 Dockerfile 与 docker/entrypoint.sh。从源码编译 pgrust完整构建步骤以 Debian/Ubuntu 为例想深入体验 pgrust源码编译是最好的方式。首先获取仓库git clone https://gitcode.com/GitHub_Trending/pg/pgrust cd pgrust安装编译依赖sudo apt-get update sudo apt-get install -y build-essential pkg-config libicu-dev libssl-dev libldap2-dev libpam0g-dev postgresql-client-18编译 release 版本PGRUST_PGSHAREDIR$PWD/vendor/postgres-18.3/share \ cargo build --release --locked --bin postgres初始化数据目录target/release/postgres --initdb \ -D /tmp/pgrust-data \ -L $PWD/vendor/postgres-18.3/share \ --no-locale --encoding UTF8 -U postgres启动 pgrust 服务注意设置栈大小这是 Rust 侧栈模型的特殊要求ulimit -s 65520 RUST_MIN_STACK33554432 target/release/postgres \ -D /tmp/pgrust-data -F -c listen_addresses \ -k /tmp -p 5432 -c io_methodsync -c max_stack_depth60000最后连接并验证psql -h /tmp -p 5432 -U postgres -d postgres -c select 1 1 as two;运行 pgrust 回归测试亲身体验 46,000 查询兼容性pgrust 最让人放心的一点就是它的兼容性是可验证的。项目提供了一个仅需克隆仓库就能运行的回归测试脚本 scripts/run-regression配合随仓库附带、位于 vendor/postgres-18.3/ 的官方测试文件无需安装 C 版 PostgreSQL 即可运行PGRUST_BIN$PWD/target/release/postgres scripts/run-regression它会自动按官方 parallel_schedule 顺序跑完整套回归测试并把 pgrust 的输出与官方预期逐条比对。跑完看到全绿的那一刻你会真切感受到用 Rust 重写 PostgreSQL这件事有多扎实。pgrust 源码结构解析Rust 模块化重写思路pgrust 的源码组织方式非常工程化整个项目是一个 Rust workspace见 Cargo.toml包含数百个 crate主要分为两大块crates/backend/数据库后端核心按 PostgreSQL 源码模块对应划分如 access存取方法、executor执行器、optimizer优化器、parser解析器、storage存储、utils工具等crates/_support/支撑层包含大量基础类型types_*、FFI 绑定、以及独特的seam 机制独特的 seam接缝机制为了打破 crate 之间循环依赖pgrust 设计了seam!宏见 crates/_support/seam/seam_core函数槽只在真正需要时安装启动时由各 crate 的init_seams()统一注册。这种设计让重写后的代码保持了清晰的模块边界也为后续深度改造预留了手术口。AI 辅助编程的产物pgrust 是AI 辅助编程大规模实践的标志性项目大量 C 代码通过 AI 工具转换为 Rust再由人工审查打磨。这也让项目迭代速度惊人——从启动到通过 46,000 回归查询仅用了很短的时间。pgrust 路线图未来还会带来哪些惊喜根据官方路线图pgrust 接下来会重点推进多线程内核进一步挖掘线程模型的性能潜力内建连接池省去 PgBouncer 等外部组件JSON 负载优化让 JSONB 场景更快免 VACUUM 存储探索无清理架构彻底告别膨胀焦虑️坏查询护栏为糟糕 SQL 和 AI 生成 SQL 提供运行时保护更少的计划突变优化器计划切换更平稳避免性能抖动⚠️ 需要提醒的是pgrust目前尚未达到生产就绪状态公开版本也未做极致性能优化部分扩展如 PL/Python、PL/Perl暂不兼容。适合尝鲜、研究、学习生产环境建议观望后续版本。总结pgrust 适合谁值得关注吗如果你是数据库爱好者、Rust 学习者或是对PostgreSQL 内核还能怎样被改造充满好奇的开发者pgrust 绝对是 2026 年最值得关注的开源项目之一。它回答了一个大胆的问题当 PostgreSQL 遇上 Rust 和 AI会发生什么从 46,000 回归测试全通过到线程级并发模型再到瞄准 ClickHouse 的分析性能pgrust 正一步步把用 Rust 重写 PostgreSQL从疯狂想法变成现实。虽然距离生产级还有距离但它已经为整个数据库行业打开了一扇新的大门——这扇门背后可能是一个更快、更安全、更易改造的 PostgreSQL 新时代。【免费下载链接】pgrustPostgres rewritten in Rust, now faster than Postgres and Clickhouse项目地址: https://gitcode.com/GitHub_Trending/pg/pgrust创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考