Hacker ApprovedDepartments

Protobuf

Ranked 4 of 9 serialization formats by recommenders

Schema-based binary format with good tooling and forward and backward compatibility across many languages. Critics most often flag its silent default values.

Schema-based binary format with good tooling and forward and backward compatibility across many languages. Critics most often flag its silent default values.

44 people gave an opinion

recommend it
19
criticize it
25
approval share
43%
Each figure is one person. RecommendsCriticizes

Recommended in 8 of 13 months

  1. November 2025: recommended
  2. December 2025: recommended
  3. January 2026: recommended
  4. February 2026: recommended
  5. March 2026: recommended
  6. April 2026: recommended
  7. May 2026: not recommended
  8. June 2026: not recommended
  9. July 2026: recommended
  10. August 2026: recommended
  11. September 2026: not recommended
  12. October 2026: not recommended
  13. November 2026: not recommended (month in progress)

Why it doesn’t carry the badge

  • 19 people recommend itNeeds 10 or more, met.
  • 0.7 recommenders for every criticNeeds 2 to 1 or better, not met.
  • Recommended in 8 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

  • Compact, fast binary encoding

    “CBOR or Protobuf or any dozen other binary serializations that would be far more efficient.”

    Comment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

    “protobuf and its ilk are more space efficient and very widely supported”

    Comment from 2 Mar 2026 in “Why does C have the best file API”

    “protobuf is faster at both encoding and decoding than json”

    Comment from 16 Aug 2026 in “Protobuf has LSP support. You're welcome”
  • Schema evolution and compatibility

    “Protobuf's unknown field support is useful if you want to forward a message in its entirety”

    Comment from 15 Feb 2026 in “gRPC: From service definition to wire format”

    “Protobuf in conjunction with gRPC can play wisely with the backwards compatibility feature”

    Comment from 1 Dec 2025 in “Why I stopped using JSON for my APIs”

    “protobuf solved serialization with schema evolution back/forward compatibility.”

    Comment from 9 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”
  • Better tooling and battle-tested

    “Protobuf ultimately gets the nod because it has better tooling”

    Comment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster”

    “battle hardened tooling that comes with it”

    Comment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

What people warn about

Each mark is one comment

  • Silent defaults and no required fields

    “Protobuf's deliberate lack of support for required fields means that either you kick that down to every callsite”

    Comment from 1 Dec 2025 in “Why I stopped using JSON for my APIs”

    “Protobuf's "silently default everything" model has caused mass production incidents at real companies.”

    Comment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

    “Defensive is error-prone, and verbose, harder to reason about, and still not guaranteed.”

    Comment from 2 Dec 2025 in “Why I stopped using JSON for my APIs”
  • Poor fit outside strict-schema use cases

    “is missing support for a tons of use cases where JSON thrives due to the strict schema requirement”

    Comment from 1 Dec 2025 in “Why I stopped using JSON for my APIs”

    “why should I use protobuf, when I just need to share structs and arrays in memory”

    Comment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster”
  • Language design limitations, need redesign

    “some language designs (around enum/oneof, the fact that adding fields forces you to update all constructor code sites)”

    Comment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

    “has many limitations which I think can be overcome by redesigning the language from scratch”

    Comment from 9 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

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.

Protobuf compared with 4 alternatives
ProductRecommendCriticizeApprovalMonthsOwnedBadge
Protocol Buffers (protobuf)776654%1010 yrs3 owners—
Serde221658%10——
Cap'n Proto20580%7—Approved
ProtobufThis page192543%8——
FlatBuffers16480%5—Approved
See all 9 serialization formats, ranked

What people said

40 of the 51 comments that mention it, newest first. Each links to the original comment.

“protobuf starts having a bunch of weird limitations”

CriticizesComment from 17 Aug 2026 in “Protobuf has LSP support. You're welcome”

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

CriticizesComment from 17 Aug 2026 in “Protobuf has LSP support. You're welcome”

“protobuf is faster at both encoding and decoding than json”

RecommendsComment from 16 Aug 2026 in “Protobuf has LSP support. You're welcome”

“the C# library was missing a couple of fairly cheap optimisations that were present in the C++ version”

CriticizesComment from 15 Aug 2026 in “Auto-research with codex: How I achieved a 232x Faster Kernel”

“If you go with protobuf, you're picking 2 out of 3: simplicity, fast, idiomatic.”

MixedComment from 12 Jul 2026 in “Protobuf-py: Protobuf for Python, without compromises”

“Protobuf does it very well.”

RecommendsComment from 6 Jul 2026 in “Do you hate XML? (2010)”

“I know protobuf code is extremely high quality, but I really can't stand the c-style naming conventions.”

MixedComment from 30 Apr 2026 in “You can beat the binary search”

“CBOR or Protobuf or any dozen other binary serializations that would be far more efficient.”

RecommendsComment from 19 Mar 2026 in “RX – a new random-access JSON alternative”

“In Protobuf I can write a code generator that loads the compiled PB descriptions and then generates whatever it needs.”

RecommendsComment from 10 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“horrible Protobuf-to-Python bidding, it was a big frustration”

CriticizesComment from 10 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“Protobuf bindings for Python were made probably after taking a lot of hallucinogenic drugs”

CriticizesComment from 10 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“has many limitations which I think can be overcome by redesigning the language from scratch”

CriticizesComment from 9 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“a compact tag-based binary format with varint encoding”

RecommendsComment from 9 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“protobuf solved serialization with schema evolution back/forward compatibility.”

RecommendsComment from 9 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“I have seen bugs with protobufs misinterpreted since there is no connection handshake”

CriticizesComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“some language designs (around enum/oneof, the fact that adding fields forces you to update all constructor code sites)”

CriticizesComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“Protobuf's "silently default everything" model has caused mass production incidents at real companies.”

CriticizesComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“battle hardened tooling that comes with it”

RecommendsComment from 8 Mar 2026 in “Show HN: Skir – A schema language I built after 15 years of Protobuf friction”

“With a decent memory-safe parser, it’s perfectly safe”

RecommendsComment from 7 Mar 2026 in “Nobody ever got fired for using a struct”

“the right tool might be Parquet or Arrow or protobuf or Cap’n Proto”

RecommendsComment from 6 Mar 2026 in “Nobody ever got fired for using a struct”

“protobuf and its ilk are more space efficient and very widely supported”

RecommendsComment from 2 Mar 2026 in “Why does C have the best file API”

“which is 2^5 message types, even if all fields of both versions were mandatory”

CriticizesComment from 27 Feb 2026 in “Google API Keys Weren't Secrets. But Then Gemini Changed the Rules”

“Protobuf's unknown field support is useful if you want to forward a message in its entirety”

MixedComment from 15 Feb 2026 in “gRPC: From service definition to wire format”

“why should I use protobuf, when I just need to share structs and arrays in memory”

CriticizesComment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster”

“Rube Goldberg like contraption with protobufs in the middle. That's the problem.”

CriticizesComment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster”

“Protobuf ultimately gets the nod because it has better tooling”

MixedComment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster”

“protobufs are so inefficient that they drive up latency and datacenter costs”

CriticizesComment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster”

“because of its comparatively high efficiency”

RecommendsComment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster”

“It's because a megacorp maintains it.”

RecommendsComment from 23 Jan 2026 in “Replacing Protobuf with Rust to go 5 times faster”

“typical kafka clients that throw off a buffer of garbage per message and protobuf”

CriticizesComment from 10 Dec 2025 in “Golang's big miss on memory arenas”

“It's possible to build this around protobuf.”

RecommendsComment from 3 Dec 2025 in “Why I stopped using JSON for my APIs”

“Defensive is error-prone, and verbose, harder to reason about, and still not guaranteed.”

CriticizesComment from 2 Dec 2025 in “Why I stopped using JSON for my APIs”

“You have much more tooling involved especially if data passes between parts written in different languages.”

CriticizesComment from 2 Dec 2025 in “Why I stopped using JSON for my APIs”

“missing one that I wish it could support: zero-copy”

MixedComment from 2 Dec 2025 in “Why I stopped using JSON for my APIs”

“Protobuf's deliberate lack of support for required fields means that either you kick that down to every callsite”

CriticizesComment from 1 Dec 2025 in “Why I stopped using JSON for my APIs”

“Protobuf in conjunction with gRPC can play wisely with the backwards compatibility feature”

RecommendsComment from 1 Dec 2025 in “Why I stopped using JSON for my APIs”

“is missing support for a tons of use cases where JSON thrives due to the strict schema requirement”

MixedComment from 1 Dec 2025 in “Why I stopped using JSON for my APIs”

“which is really hard to statically link correctly on MinGW”

CriticizesComment from 25 Nov 2025 in “Ask HN: Is starting a new project in C++ just a mistake in 2025?”

“the better tech isn't usually XML but rather things like Avro or Protobuf”

RecommendsComment from 6 Nov 2025 in “Removing XSLT for a more secure browser”

“protobuf suddenly depending on parts of abseil”

CriticizesComment from 6 Nov 2025 in “Rust is eating the world: From firmware to cross-platform applications, servers”

Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.