Postgres运行Rust函数
PL/Rust 是一个 PostgreSQL 可加载过程语言扩展,允许开发者用 Rust 编写数据库函数,并将这些函数编译为原生机器码执行。与解释型过程语言不同,它强调性能、Rust 编译期安全能力,以及对 Rust 生态的利用。项目开源,并在 GitHub 上积极开发。
从功能上看,PL/Rust 覆盖了 PostgreSQL 内函数开发的关键场景:普通函数、参数与返回类型、集合返回函数、触发器、SPI、动态函数调用等。它提供对 PostgreSQL Server Programming Interface 的访问,包括动态查询、预处理语句和游标;同时为 TEXT、INT、BIGINT、NUMERIC、FLOAT、DOUBLE PRECISION、DATE、TIME 等常见类型提供安全 Rust 类型封装。技术上,PL/Rust 基于 pgrx,每个 LANGUAGE plrust 函数都可视作小型 pgrx 扩展。
PL/Rust 的重要卖点是 Rust 的类型安全和内存安全。它通过 Rust 编译器禁止用户函数使用 unsafe,并借助 plrust-trusted-pgrx 限制可用的 pgrx 能力。在 Linux x86_64 和 aarch64 上,若以 trusted feature 编译并使用 postgrestd,可限制访问文件系统和宿主操作系统。不过文档也明确说明,这并不是沙箱,不能视为强安全边界。其他平台可用 untrusted 模式,但安全保证较弱。安装方面涉及 PostgreSQL 扩展、Rust 编译目标、postgrestd 以及可能的交叉编译配置,复杂度不低。
正文未出现商业定价或付费版本信息,只能判断其为开源项目。文档目录覆盖安装、Docker 试用、函数用法、数据类型、SPI、架构、外部依赖、lint 和环境变量等,结构较系统;但页面也标注文档仍在开发中,部分内容如交叉编译指南仍不完整。
优点是性能潜力高、类型安全强、能利用 Rust 生态,并深入集成 PostgreSQL。缺点是安装和运维门槛较高,trusted 模式平台受限,且第三方 crate 依赖仍可能使用 unsafe。它适合熟悉 Rust 和 PostgreSQL 内部开发、需要在数据库侧执行高性能逻辑的团队;普通 SQL 业务或追求低门槛脚本扩展的用户,可能更适合 PL/pgSQL、PL/Python 或现有 C/pgrx 扩展方案。
抓取文本未提供中国大陆访问、镜像、支付或网络可用性信息,因此中国访问状态为未知。若依赖 GitHub、crates.io 或 docs.rs,实际使用中可能需要结合本地网络环境评估。
本测评基于公开资料整理,不构成购买建议,请以 plrust.io 官网实际信息为准。
PostgreSQL开发者工具文档,技术价值较高。
评分明细(分布与用户短评)接入中。当前展示 TG4G 综合评分,数据源自公开测评与用户反馈。