Buf ships a production Protobuf language server, bringing modern IDE support at last
Buf has released what it calls the first production-grade Language Server Protocol implementation for Protobuf, closing a long-standing gap between the schema language and the tooling that mainstream programming languages have enjoyed for years. The server delivers the features developers expect from a modern editor—go-to-definition, autocompletion, reference lookup, and semantics-aware highlighting—and works across VSCode via the Buf extension, Neovim through nvim-lspconfig, and any other editor capable of spawning the buf lsp serve command. It ships bundled with the Buf CLI rather than as a separate install.
The technical foundation is Buf’s own Protobuf compiler frontend, protocompile, which the company positions as a faster and more flexible alternative to Google’s protoc—so much so that Google reportedly uses it in parts of its own codebase. For the LSP, Buf built a new query-driven frontend supporting incremental compilation and sharper diagnostics, backed by a purpose-built AST and intermediate representation rather than the standard FileDescriptorProto. That design lets it catch errors protoc misses, such as duplicate repeated modifiers, while staying memory-efficient enough for large workspaces and adaptable to upcoming Editions 2024 features.
The release is another move in Buf’s strategy of owning the Protobuf ecosystem end to end, alongside Protobuf-ES, Protovalidate, ConnectRPC, and its Schema Registry. Planned additions include automatic import fixes, tighter buf.yaml integration, completion for custom options, auto-suggested field and enum numbers, and dedicated Protovalidate support with CEL syntax highlighting. For teams standardizing on Protobuf for schema-driven development, editor tooling parity with other languages has been a notable friction point, and this aims squarely at removing it.
Read the full article
Continue reading at Hacker News →This is an AI-generated summary. Read the original for the full story.