Repolode
yoheimuta

yoheimuta/protolint

无需编译器即可检查并自动修复 Protocol Buffer 风格问题的可插件化 linter。

Star
697
Fork
65
未关闭 Issue
53
最近提交
15天前

这是什么?

protolint 用于检查和修复 proto2 与 proto3 的 .proto 文件。它直接解析源文件,不需要调用 protobuf 编译器,因此运行速度快,也不必搭建完整的编译环境。官方风格指南中的大部分规则都支持 -fix 自动修复;开启自动禁用模式后,则会插入禁用注释而不是改动可能破坏 API 兼容性的代码。

规则可以通过 protolint:disable 注释在文件内局部关闭,也可以通过 .protolint.yaml 配置。用户还能以插件形式加载自定义检查规则。输出格式支持 GitHub Actions、Azure DevOps、GitLab CI、JUnit、SARIF、SonarQube 等。

它可以作为独立命令行工具使用,也可以作为 protoc 插件、pre-commit 钩子、Go 库、npm 或 Python 包,或作为 AI 客户端可调用的 MCP 服务器。

核心功能

  • 01无需 protoc 即可检查 proto2 与 proto3 文件。
  • 02通过 -fix 自动修复大部分官方风格指南违规项。
  • 03自动禁用模式插入抑制注释,保持 API 兼容。
  • 04支持文件内禁用注释和 .protolint.yaml 配置。
  • 05通过插件机制加载自定义检查规则。
  • 06提供 JUnit、SARIF、SonarQube、JSON 等多种输出格式。

适用场景

  • 统一团队 protobuf schema 的命名与缩进风格。
  • 在 CI 流水线或 pre-commit 钩子中于合并前执行风格检查。
  • 在 VS Code、IntelliJ 或 Vim 等编辑器中检查 protobuf 文件。
  • 为内部 API 约定添加项目专属的检查规则。

标签

常见问题

protolint 是什么?
无需编译器即可检查并自动修复 Protocol Buffer 风格问题的可插件化 linter。 protolint 用于检查和修复 proto2 与 proto3 的 .proto 文件。它直接解析源文件,不需要调用 protobuf 编译器,因此运行速度快,也不必搭建完整的编译环境。官方风格指南中的大部分规则都支持 -fix 自动修复;开启自动禁用模式后,则会插入禁用注释而不是改动可能破坏 API 兼容性的代码。
protolint 可以免费使用吗?用的什么许可证?
protolint 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
protolint 还在维护吗?
活跃维护中。protolint 最近一次提交是在 2026年10月7日。
protolint 适合用来做什么?
统一团队 protobuf schema 的命名与缩进风格。 在 CI 流水线或 pre-commit 钩子中于合并前执行风格检查。 在 VS Code、IntelliJ 或 Vim 等编辑器中检查 protobuf 文件。 为内部 API 约定添加项目专属的检查规则。
在哪里获取 protolint?
源代码和安装说明在 GitHub 上:https://github.com/yoheimuta/protolint

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目