Buf 为主流编辑器发布了一个基于编译器的 Protobuf 语言服务器
在 2022 年进行的一次有限的概念验证之后,Buf 已将其 Protobuf 语言服务器集成到 CLI 中。
By RuntimeWire Staff · Published
Primary source: Buf
Why it matters
Buf is using compiler-level editor tooling as a free distribution layer for its schema registry, extending Peter Edge's Uber-informed thesis into every `.proto` edit.

2026年1月14日,Peter Edge 的 Buf 发布了一个基于编译器的 Protobuf 语言服务器,通过标准的 Language Server Protocol 为开发者提供代码补全、导航、引用查找、诊断和语义高亮。该版本在 一篇博客文章 中有详细说明,并通过 Buf CLI 的 buf lsp serve 命令将这些功能引入。
这次发布延续了 Edge 在离开 Uber 时带出的一个论断:只有当周边工具消除了维护模式所需的手工工作,基于模式(schema-driven)的开发才会奏效。Edge 在 Carnegie Mellon University 学习计算机科学和数学,之后在多伦多的 Uber 工作了约五年。据 一篇 2021 年的报道,他后来估计与 API 相关的支持工作大约占用了他工程时间的 20%。
那段经历成为 Buf 的基础。Edge 围绕在定义模式与在大型工程组织中保持其可用性之间的工作构建了 Buf:编译、格式化、lint、代码生成、依赖管理、破坏性变更检测与注册表治理。编辑器智能功能使 Buf 更接近开发者第一次创建和修改这些模式的环节。
从实验到产品的四年
Buf 已在 2022 年 8 月 19 日发布过 一个实验性的 Protobuf 语言服务器。该概念验证仅支持跳转到定义,Buf 明确表示它没有主动维护,也不保证稳定性。
一月的发布是不同的实现,具有更大的产品覆盖面。该服务器被打包进 Buf CLI,而 Buf 的 VS Code 扩展可以使用现有的 CLI 安装或自动安装一个。Neovim 和其他兼容编辑器可以直接启动相同的服务器进程。Buf 的 当前编辑器文档 列出了对 VS Code、Vim、Neovim 和 IntelliJ 的集成。
该实现基于 protocompile,这是 Buf 的基于 Go 的解析与链接引擎,也是 Google 的 protoc 编译器的一个替代前端。对于语言服务器,Buf 表示它创建了一个基于查询的前端,能够在开发者编辑文件时增量重编译。Buf 还设计了一个新的抽象语法树和中间表示,而不是依赖 FileDescriptorProto,从而允许诊断指向无效源代码的具体部分。
公告中的一个示例显示服务器检测到两个连续的 repeated 修饰符。诊断识别出这两个出现位置并建议移除重复项。这种程度的源代码感知在编辑器里很重要——在那儿,通用的编译器失败信息比起指向确切标记及其冲突声明的错误,给开发者的指导作用要小得多。
Buf 当前的文档列出了跳转到定义、引用、补全、悬停信息、格式化、语法高亮、工作区符号和文档符号。它还列出了用于组织导入和将 Protobuf 符号标记为弃用的代码操作。
首个声明需要限定
Buf 在 其公告 中将该发布描述为首个“功能完整、可用于生产”的 Protobuf 语言服务器。这是 Buf 的主张,公告中并未定义“可用于生产”的标准,也未发布基准、使用数据或可靠性数据。
在 Buf 一月发布之前已经存在其他 Protobuf 语言服务器。Microsoft 的 LSP 实现目录 将 Buf 与两个替代方案并列:基于 Rust 的 Protols 和由 Lasorda 维护的 Go 实现。Protols 宣传支持补全、诊断、格式化、符号和导航,因此要广泛主张以前 Protobuf 缺乏 LSP 支持并不容易成立。
Buf 有一个更窄但更有力的立场。其语言服务器与 Buf 工具链的其余部分共享编译器和工作区模型。开发者可以使用相同的安装来获取编辑器反馈、格式化、lint、破坏性变更检查和代码生成。这样的集成降低了编辑器插件与持续集成管道对同一模式进行不同解释的可能性。
该架构也为 Buf 的商业产品提供了分发路径。语言服务器通过免费 CLI 到达用户,将 Buf 放入日常编辑循环中。Buf Schema Registry 销售的是围绕这些本地工作流的组织级层面,包括生成的 SDK、API 文档、插件管理和治理。
Edge 对基础设施的押注
Buf 在 2021 年 12 月披露了 $93.4M 融资,分四轮。此次融资包括由 Lux Capital 和 Tiger Global 共同领投的 6800 万美元 B 轮,此前的轮次由 Addition、Lightspeed Venture Partners 和 Amplify Partners 领投。Axios 当时报道说,Buf 打算将大部分资金用于招聘。
这笔资金让 Edge 有空间投资于那些商业回报取决于长期广泛采用的编译器和开发者工具工作。语言服务器遵循与 Buf 的格式化工具、破坏性变更检查器和代码生成工具相同的模式:在本地解决反复出现的工程问题,然后将该工作流连接到企业可跨团队标准化的注册表。
截至 2026 年 8 月 16 日,buf lsp serve 仍被记录为受支持的 CLI 命令。因此该发布已经超越了 Buf 在 2022 年的未维护实验,进入了主工具链。Buf 的资料中并未给出语言服务器的采用率和收入数据,将其转化为注册表使用量成为核心的业务检验。
Edge 最初的抱怨是工程师在各个公司内部重建模式基础设施花费了太多时间。语言服务器将这一论点带入了编辑器。每一次补全、诊断和导入修复都会减少团队自行组建 Protobuf 工具链的又一个小理由,同时也为 Buf 提供了进入组织中管理 API 的系统的另一条路径。