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),仅供参考

相关新闻

屏幕后处理特效:URP-LWRP-Shaders 中 CRT TV、黑洞与放大镜 Shader Graph 教程

屏幕后处理特效:URP-LWRP-Shaders 中 CRT TV、黑洞与放大镜 Shader Graph 教程

屏幕后处理特效:URP-LWRP-Shaders 中 CRT TV、黑洞与放大镜 Shader Graph 教程 【免费下载链接】URP-LWRP-Shaders A Collection of Shader For URP(LWRP) Render Pipeline 项目地址: https://gitcode.com/gh_mirrors/ur/URP-LWRP-Shaders 在 Unity 的 URP&a…

2026/10/18 15:58:37 阅读更多 →
认识 LangChain.dart:为什么 Flutter 开发者需要它?Dart 生态首个 LLM 应用框架全解析

认识 LangChain.dart:为什么 Flutter 开发者需要它?Dart 生态首个 LLM 应用框架全解析

认识 LangChain.dart:为什么 Flutter 开发者需要它?Dart 生态首个 LLM 应用框架全解析 【免费下载链接】langchain_dart Build LLM-powered Dart/Flutter applications. 项目地址: https://gitcode.com/gh_mirrors/la/langchain_dart 如果你是一名…

2026/10/18 10:37:11 阅读更多 →
eNSP启动卡在#号?网络模拟器环境配置与故障排查全解析

eNSP启动卡在#号?网络模拟器环境配置与故障排查全解析

1. 项目概述:当eNSP启动界面卡在“#”号时如果你是一名网络工程师,或者正在学习华为认证,那么eNSP(Enterprise Network Simulation Platform)这个软件对你来说一定不陌生。它几乎是每个网络初学者的“标配”实验环境&a…

2026/10/17 14:18:49 阅读更多 →

最新新闻

Android自定义SeekBar:图片背景与图片进度的实现方案与避坑指南

Android自定义SeekBar:图片背景与图片进度的实现方案与避坑指南

简介:面向Android开发者的SeekBar定制方案资源包,以图片替换系统原生样式,解决默认SeekBar外观单一、难以匹配界面整体设计的问题。压缩包内是一个完整的Eclipse工程示例,演示如何继承SeekBar并编写MySeekBar类,在attr…

2026/10/19 2:21:37 阅读更多 →
匹配滤波与脉冲压缩:从信噪比最大化到MATLAB仿真避坑

匹配滤波与脉冲压缩:从信噪比最大化到MATLAB仿真避坑

简介:这是一份面向雷达信号处理、数字信号处理学习者的Matlab仿真与推导资料,核心围绕线性调频(LFM)信号匹配滤波,系统讲解增益和归一化系数的来龙去脉。作者先分别推导信号和白噪声通过匹配滤波后的增益公式&#xff…

2026/10/19 2:21:37 阅读更多 →
基于RK3588的边缘AI婴儿监护系统:多模态融合与工程实践

基于RK3588的边缘AI婴儿监护系统:多模态融合与工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:21:37 阅读更多 →
Codex 0.105.0语音编程实测:按住空格说话让AI直接写代码

Codex 0.105.0语音编程实测:按住空格说话让AI直接写代码

作为一个常年在终端里干活的人,我对"命令行工具又更新了"这种消息本来已经麻木了。但这次 Codex 0.105.0 的更新确实让我多看了两眼:按住空格键,对着终端说话,让它直接把代码写出来。听起来像demo噱头,但真正…

2026/10/19 2:21:37 阅读更多 →
专科生论文降AIGC检测全攻略:从查重到AI痕迹的实战方法

专科生论文降AIGC检测全攻略:从查重到AI痕迹的实战方法

查重率10%,AIGC疑似度91%。A同学拿着检测报告坐在我面前时,表情比论文答辩还沉重。导师的话很直接:要么把AI痕迹降下来,要么别进盲审。这不是个例。最近几个月,找我咨询论文降重的人里,专科生比例明显上升&…

2026/10/19 2:21:37 阅读更多 →
PyCharm 安装激活全流程避坑指南:从版本选择到环境配置

PyCharm 安装激活全流程避坑指南:从版本选择到环境配置

简介:面向初学Python编程语言或需要重新配置开发环境的人群,这份PyCharm安装教程以Word文档形式,完整梳理了从获取安装包、安装选项配置到激活授权的整个操作链路。文档采用分步骤讲解,先介绍在浏览器搜索入口找到下载页面&#x…

2026/10/19 2:20:36 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →