Protocol Buffers (protobuf)
The most recommended of 9 serialization formats
Schema-based binary format with compatible changes, compact messages and generated code in many languages. Critics cite language design flaws and that messages need the schema to read.
Schema-based binary format with compatible changes, compact messages and generated code in many languages. Critics cite language design flaws and that messages need the schema to read.
143 people gave an opinion
- recommend it
- 77
- criticize it
- 66
- approval share
- 54%
Recommended in 10 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: not recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: not recommended
- November 2026: not recommended (month in progress)
Owned for 10 years
Median of the 3 owners who said how long they have had it.
Each square is one year.
Why it doesn’t carry the badge
- 77 people recommend itNeeds 10 or more, met.
- 1.1 recommenders for every criticNeeds 2 to 1 or better, not met.
- Recommended in 10 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Compatible changes without breaking clients
“This is one of the core strengths of protobuf. Non-destructive protobuf changes, such as adding new API methods or new fields, do not require clients to update.”
Comment from 14 Dec 2025 in “Why Twilio Segment moved from microservices back to a monolith” “protobuf has compatibility built in and you do not need to write anything to support outdated clients”
Comment from 20 Apr 2026 in “Zero-copy protobuf and ConnectRPC for Rust” “how neat and well-designed the wireformat is, in terms of backward/forward compatibility”
Comment from 24 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster” - Comment from 27 Dec 2025 in “Always Bet on Text”
- Comment from 14 Feb 2026 in “gRPC: From service definition to wire format”
- Comment from 14 Dec 2025 in “Why Twilio Segment moved from microservices back to a monolith”
Generates code for many languages
“allows to generate easy to use code for parsing defined data and services for many languages and is one of the faster and less bandwidth wasting options”
Comment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster” “LLMs already are very familiar with it, there are 100s of protoc plugin to generate code from it”
Comment from 11 Feb 2026 in “Humanity's Last Programming Language” “Protobuf is fantastic because it separates the definition from the language.”
Comment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster” - Comment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster”
- Comment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster”
Compact, fast binary encoding
“allows to generate easy to use code for parsing defined data and services for many languages and is one of the faster and less bandwidth wasting options”
Comment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster” “easy to work with, great size (esp compressed), random access, close-to-optimal parsing, extensible”
Comment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster” “Protobuf simply encode things way more efficient that JSON can define a single object.”
Comment from 16 Aug 2026 in “Protobuf has LSP support. You're welcome” - Comment from 2 Dec 2025 in “Why I stopped using JSON for my APIs”
Strict schema catches errors early
“JSON allowing you to shoot yourself in the foot will take more time and effort to fix when it's corrupting data in prod”
Comment from 1 Dec 2025 in “Why I stopped using JSON for my APIs” “When you have probabilistic models generating code, strict contracts become more critical, not less.”
Comment from 16 Aug 2026 in “Protobuf has LSP support. You're welcome” “I think the strict schema of Protobuf might be one of the major improvements”
Comment from 1 Dec 2025 in “Why I stopped using JSON for my APIs” - Comment from 23 Jul 2026 in “MemoryPack: Zero encoding extreme performance binary serializer for C#”
What people warn about
Each mark is one comment
Language design has known flaws
“I think the Protobuf language (which Skir is heavily influenced by) has some flaws in its core design, e.g. the enum/oneof mess”
Comment from 9 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction” “protobuf has accumulated enough problems that every large scale application will eventually run into a footgun or two”
Comment from 24 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster” “protobuf, generally speaking, falls in the cleverness part, and certainly into the complexity part”
Comment from 1 Dec 2025 in “Why I stopped using JSON for my APIs” - Comment from 22 Oct 2026 in “Rust Style Guide”
Poor for small requests and browsers
“But it's not, so the question should be why not use it, unless you are doing browser stuff.”
Comment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster” “It’s actually not well designed for small requests, and doesn’t even deal with versioning all that well.”
Comment from 12 Jul 2026 in “Protobuf-py: Protobuf for Python, without compromises”
Other serialization formats people recommend
The four most recommended other serialization formats, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Protocol Buffers (protobuf)This page | 77 | 66 | 54% | 10 | 10 yrs3 owners | — |
| Serde | 22 | 16 | 58% | 10 | — | — |
| Cap'n Proto | 20 | 5 | 80% | 7 | — | Approved |
| Protobuf | 19 | 25 | 43% | 8 | — | — |
| FlatBuffers | 16 | 4 | 80% | 5 | — | Approved |
What people said
40 of the 176 comments that mention it, newest first. Each links to the original comment.
“Sloppy open-domain protobuf field presence, enum values, whatever are illusory extension points.”
“The role MCP, OpenAPI, and JSON schema fill all would be a million times simpler if they were based on protobuf”
“an advantage of protobuf is that proto files are hand-writeable, and therefore having an LSP for that could be useful”
“Protobuf simply encode things way more efficient that JSON can define a single object.”
“being able to avoid tests between different systems who have different versions of the schema is a core goal of protobuf”
“The protobuf language is not great, but it's about the right balance between too expressive and too restricting.”
“When you have probabilistic models generating code, strict contracts become more critical, not less.”
“If you have a tiny bit of doubt, use a binary alternative that supports it”
“It’s actually not well designed for small requests, and doesn’t even deal with versioning all that well.”
“Protobuf isn't self-documenting, so if you don't have the schema files, you can't interpret the messages”
“it's already demonstrated its ability to ship extremely reliable software with multi-decade lifespans”
“For performance critical data you can also use something like protobuf, but it would be a huge pain to handle everything that way.”
“protobuf has compatibility built in and you do not need to write anything to support outdated clients”
“those libraries will easily and efficiently do the work just as well, probably better”
“I think the Protobuf language (which Skir is heavily influenced by) has some flaws in its core design, e.g. the enum/oneof mess”
“I like Protobuf much better because I think using field numbers for field identity”
“Forward and backward compatibility are one of the wonderful things about protobufs.”
“LLMs already are very familiar with it, there are 100s of protoc plugin to generate code from it”
“how neat and well-designed the wireformat is, in terms of backward/forward compatibility”
“Other systems like CORBA or Protocol Buffers missed some of the components or did not have a well-defined standard”
“protobuf has accumulated enough problems that every large scale application will eventually run into a footgun or two”
“I don't see Protobuf going away, because in non-performance critical cases, it is more ergonomic across the different bindings”
“But it's not, so the question should be why not use it, unless you are doing browser stuff.”
“Protobuf does something important that copying memory cannot do: a protocol that can be changed separately on either end”
“easy to work with, great size (esp compressed), random access, close-to-optimal parsing, extensible”
“Having a way to describe your whole API and generate bindings is a godsend.”
“Protobuf is fantastic because it separates the definition from the language.”
“In most languages protobuf is eaiser because it generates the boilerplate.”
“allows to generate easy to use code for parsing defined data and services for many languages and is one of the faster and less bandwidth wasting options”
“Forwards and backwards compatibility is well-specified across clients in all languages.”
“it is extremely easy to make a non-breaking change to the communication channel”
“This is one of the core strengths of protobuf. Non-destructive protobuf changes, such as adding new API methods or new fields, do not require clients to update.”
“the en/de-coding speed is more important than the packet size in many situations”
“it's slightly annoying that both ends have to agree on how to serialize rather than protobuf itself doing it”
“why spend an extra 15 mins on protobuf every other day, when you can put off the 3-month JSON-revisiting project forever?”
“JSON allowing you to shoot yourself in the foot will take more time and effort to fix when it's corrupting data in prod”
“One of the best parts of Protobuf is that there's a fully compatible JSON serialization and deserialization spec”
“protobuf, generally speaking, falls in the cleverness part, and certainly into the complexity part”
“I think the strict schema of Protobuf might be one of the major improvements”
“the generated code for protobuf serialization (which I have read) is pretty readable”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.