一个自动排序并分组 Python import 语句的命令行工具和库。
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 数据每日更新。
相关项目
开源静态分析工具,用接近源码的模式查找代码缺陷并执行编码规范,支持 30 多种语言。
用 Haskell 编写的 Dockerfile 检查工具,遵循最佳实践,并借助 ShellCheck 检查 RUN 指令中的 Bash 代码。
一款命令行工具,对项目代码质量打分,覆盖 14 种语言,并按文件给出排名报告。
为 ESLint 增加 300 多条额外规则,覆盖 JavaScript 与 TypeScript,部分规则还支持 CSS、HTML、JSON、Markdown 和 YAML。
一个用于检查英文文本中常见 AI 写作痕迹的 Python 工具,给出 5 分制评分,并提供 AI 辅助改稿流程。