tree-sitter-postgres、libpgfmt、pgfmt 和 libpgdump 发布

发布于 2026-04-03,Gavin M. Roy
相关开源软件

Gavin M. Roy 发布了四个围绕 PostgreSQL 的 Rust 开源项目:

  • tree-sitter-postgres:用于 Postgres(SQL + PL/pgSQL)的 Tree-sitter 语法,直接由 PostgreSQL 的 Bison 源码生成
  • libpgfmt:用于格式化 SQL 和 PL/pgSQL 的 Rust 库,支持 aweber、dbt、gitlab、kickstarter、mozilla、mattmc3、river 等多种风格预设
  • pgfmt:基于 libpgfmt 的命令行格式化和 lint 工具
  • libpgdump:用于读写 PostgreSQL dump 文件的 Rust 库,支持 custom、directory 和 tar 格式;这是 pgdumplib 的 Rust 移植版本,并将用于后续 pgdumplib 版本

作者表示,tree-sitter-postgres 与其他同类项目最大的差异在于:它完全由 PostgreSQL 源码自动生成,因此在 PostgreSQL 新的大版本引入关键字或语法变化后,可以更容易保持语法同步更新。

libpgfmtpgfmt 最初是为了支持 AWeber SQL 风格指南 而开发,但设计上支持多种 SQL 风格。