Protocol Buffers

24 engineers on Hacker News describe using Protocol Buffers first-hand: 8 endorse it, 6 regret it, 0 are mixed.

55%trust
24first-hand users
23in production
endorse 8mixed 0regret 6uses, no opinion

“For client facing protocol Protobufs is a nightmare to use... When I was at Spotify we ditched it for client side apis... No one liked working with it.”

regret · production · ardit33 · 2025-09-06 · source ↗ · wrong label?

“I find that the best way to set up test cases, regardless of language, is usually to use string constants in the proto text format”

endorse · production · GeneralMayhem · 2024-12-16 · source ↗ · wrong label?

“They are very good for defining API boundaries, in vince we only use them for configuration and admin structure.”

endorse · production · gernest · 2024-11-29 · source ↗ · wrong label?

“it left a sour taste. First memory allocations are awful and slow.”

regret · production · jbluepolarbear · 2023-07-18 · source ↗ · wrong label?

“We migrated many of our critical protocols from JSON to protobuf, and the experience has been very positive.”

endorse · production · zeroxfe · 2022-08-05 · source ↗ · wrong label?

“there are a few issues that I've run across that makes protobuf a greater challenge in production”

regret · production · memling · 2021-12-26 · source ↗ · wrong label?

“mostly flinging protobufs back and forth because that's easy.”

endorse · production · qdot76367 · 2020-12-29 · source ↗ · wrong label?

“Bazel because it makes working with Protobuf so much cleaner (at least in theory)”

endorse · production · codesuki · 2018-05-29 · source ↗ · wrong label?

“I am using Protocol Buffers (and evaluating Cap'n Proto) for network serialization and Kafka for buffering/queuing, and overall the library support is quite good.”

endorse · production · olauzon · 2016-12-21 · source ↗ · wrong label?

“I don't find the utility to outweigh the PITA. I've been on both sides of the fence, and maintained large projects with heavy protobuf use.”

regret · production · heavenlyhash · 2016-08-28 · source ↗ · wrong label?

“After trying Protobuf on a project between C# and Javascript, we moved to MsgPack”

regret · production · lux · 2015-06-05 · source ↗ · wrong label?

“We use protocol buffers between the client drivers and the server. We picked that because there were libraries... they were really easy to use, and very efficient.”

endorse · production · coffeemug · 2012-11-09 · source ↗ · wrong label?

“I feel that protobuf is more mature and has better performance for the most part”

endorse · production · edan · 2011-10-27 · source ↗ · wrong label?

“performance we got on Java server and PHP/iOS client was pretty poor and PHP libraries do not support whole specification.”

regret · production · tadruj · 2011-05-06 · source ↗ · wrong label?

“We use this for the Protobuf PyPI package. A single artifact like protobuf-4.25.1-cp37-abi3-manylinux2014_x86_64.whl can be used with any Python version >= 3.7.”

neutral · production · haberman · 2023-12-17 · source ↗ · wrong label?

“each team would have a column that stores their proto (or empty)... these protos would be bundled as `oneof`”

neutral · production · malkia · 2023-07-20 · source ↗ · wrong label?

“the lesson that Google (and @kentonv with Cap'n Proto) took from Google's specific challenges with required fields in proto2.”

neutral · personal · mwcampbell · 2022-09-12 · source ↗ · wrong label?

“We have a mixture of python, java, go, protobuf, and node.”

neutral · production · jvolkman · 2021-12-13 · source ↗ · wrong label?

“No, we use Kubernetes, grpc and protobuf as base”

neutral · production · ivyabc · 2020-12-03 · source ↗ · wrong label?

“we switched to protobuffs over byte[] arrays for complex data later.”

neutral · production · izacus · 2019-11-08 · source ↗ · wrong label?

“It's mainly protobufs right now [1] over HTTP”

neutral · production · gouthamve · 2018-12-13 · source ↗ · wrong label?

“The schema is defined as a Protocol Buffer package. This lets us construct values protobuf-based APIs without having to manually copy over the schema.”

neutral · production · jmillikin · 2018-12-03 · source ↗ · wrong label?

“the one that broke the back of it for us was protobuf, in which it complains on every access to any one of the generated classes”

neutral · production · pebers · 2017-07-12 · source ↗ · wrong label?

“File formats are streams of protobuf messages - efficient serialization, easy to parse from a bunch of programming languages.”

neutral · production · fasterthanlime · 2016-12-09 · source ↗ · wrong label?