我们用 Rust 重写了 WAL-G 的 PostgreSQL 备份方案:WAL-RUS 登场
WAL-RUS 是一个用 Rust 语言重写的 PostgreSQL 备份工具,替代了原有的 WAL-G。它利用 Rust 的内存安全优势,消除了需要随每个备份一同打包 OpenSSL 依赖的痛点。WAL-RUS 显著简化了部署流程,消除了库的兼容性问题,同时保持了极高的性能,使其成为管理 PostgreSQL WAL 日志和备份的高效替代方案。
背景速读
- WAL-G 是一个广泛使用的 PostgreSQL 连续归档与备份还原工具,用 Go 语言编写,支持 AWS S3、GCS、Azure 等云存储。
- ClickHouse 是一家实时分析数据库公司,其团队维护 WAL-G 的 Postgres 版本(wal-g)。现在他们将核心逻辑用 Rust 重写,新项目命名为 WAL-RUS。
- 重写动机:Rust 的内存安全性和性能(无 GC、零成本抽象)更适合 I/O 密集型的备份场景;同时希望降低与 ClickHouse 自家的 Rust 技术栈的维护成本。
- WAL-RUS 保持与 WAL-G 相同的命令行接口和存储后端兼容性,用户可无缝切换。
- 此举反映了 PostgreSQL 生态中 Rust 工具链逐步替代 Go/ Python 工具的趋势(如 pgvector 也有 Rust 实现)。