Protocol Buffers

Google's language-neutral binary serialization format and schema language for structured data.

Liked for typed schemas shared across languages123 and compact, efficient data exchange.456 The most common complaints are design flaws and serializer complexity789, plus painful gRPC integration in modern stacks.1011
The HN verdict, written from 11 cited comments
5recommend
1warn against
Dec 1, 2025first mention
Oct 14, 2026latest mention
Nov 25 – Oct 26
Used forfor multi-language codebasesfor service APIsfor config filesapi serializationenforcing service boundaries in ai-written code

Why people recommend it

Cross-language schemas · 3

A single .proto schema gives typed bindings shared between languages like C# and Python.

“Protobuf makes it easy to have typed bindings in the different languages we support”

original author of pg_queryswitched from JSONon “Replacing Protobuf with Rust to go 5 times faster”

“We use protobuf between c# and Python.”

Show 1 more

“The protobuf language is not great, but it's about the right balance between too expressive and too restricting.”

Efficient exchange · 3

Commenters call it compact and well suited to data exchange.

“The protobuf language is not great, but it's about the right balance between too expressive and too restricting.”

“Protobuf does it very well.”

Show 1 more

“I used protobuf for map data, but it is a hardcore simple format”

Readable text format · 2

Textproto is readable, supports comments, and works well for config files.

“we use protobuf converted to text format. It looks JSON like so very readable and comes with all the other benefits of protobuf.”

“Protobuf does it very well.”

Balanced language · 1

The schema language is seen as about the right balance between too expressive and too restrictive.

“The protobuf language is not great, but it's about the right balance between too expressive and too restricting.”

Caveats and dissent

Design flaws · 3

Commenters cite hard-to-fix design flaws, an imperfect language, and overly complex serializers.

“although I think it's great, it carries a few design flaws which are hard to fix at this point”

“Protobuf is ok but if you actually look at how the serializers work, it's just too complex for what it achieves.”

Show 1 more

“The protobuf language is not great, but it's about the right balance between too expressive and too restricting.”

gRPC ecosystem · 2

Integrating gRPC from modern stacks like async Python is described as a nightmare, and the ecosystem as fumbled.

“The promise of Protobuf/gRPC for seamless communication across tech stacks just wasn't delivered.”

“Protobuf does it very well.”

No safety guarantees · 2

proto3 has no required fields and version skew breaks assumptions, so clients must be written defensively.

“Protobuf clients need to be written defensively, just like JSON API clients.”

“it seems like protobuf3 fixed a lot of stuff I used to hate about protobuf2.”

Rigid schema · 1

The strict schema requirement misses many use cases where JSON thrives.

“Protobuf has advantages, but is missing support for a tons of use cases where JSON thrives due to the strict schema requirement.”

Not human-readable · 1

The binary wire format is not human-readable.

“The promise of Protobuf/gRPC for seamless communication across tech stacks just wasn't delivered.”

Who recommends it in their own words

All comments 14

“I’ve been getting overzealous with protobuffers and service discovery as well.”

“The promise of Protobuf/gRPC for seamless communication across tech stacks just wasn't delivered.”

“We use protobuf between c# and Python.”

“The protobuf language is not great, but it's about the right balance between too expressive and too restricting.”

“Protobuf does it very well.”

“although I think it's great, it carries a few design flaws which are hard to fix at this point”

“My guess is there's more to that story than just "protobufs don't forward unknown fields" because that's not how they work be default.”

“Protobuf makes it easy to have typed bindings in the different languages we support”

original author of pg_queryswitched from JSONon “Replacing Protobuf with Rust to go 5 times faster”

“I used protobuf for map data, but it is a hardcore simple format”

“we use protobuf converted to text format. It looks JSON like so very readable and comes with all the other benefits of protobuf.”

“Protobuf clients need to be written defensively, just like JSON API clients.”

“Protobuf is ok but if you actually look at how the serializers work, it's just too complex for what it achieves.”

“it seems like protobuf3 fixed a lot of stuff I used to hate about protobuf2.”

“Protobuf has advantages, but is missing support for a tons of use cases where JSON thrives due to the strict schema requirement.”

Threads where it came up

Also written as Protobuf. Data: protocol-buffers.json. Quotes are verbatim; the verdict and theme labels are written by a model from these comments, and every clause links to its sources.

Keyboard shortcuts
j / kNext / previous item
o or EnterOpen selected item
/Search
g hHome
g tTop
g rRising
g cCategories
tToggle dark mode
?This help