Go Protobuf
summary
Release in December 2024 of the opaque API removes exported fields and replaces pointer-based presence with bit fields, cutting allocations and often halving allocation counts in benchmarks; lazy decoding defers work until access. Migration uses a multi-pass rewriter open2opaque built on go/ast, go/types, DST and go/packages. Migration required >100,000 monorepo edits at Google and saves hundreds of thousands of CPU cores; over 98% of Google production already runs it. Ideal for large Go codebases that heavily use Protobuf.
AI-written summary · about
chapters (8)
- 0:00Go Protobuf intro
- 0:42Protobuf vs JSON
- 6:40Protobuf vs JSON
- 8:47Protobuf editions
- 10:10Opaque API
- 14:05Opaque API changes
- 18:39Rewriting Go to opaque API
- 26:06Opaque API production ready
related talks
24mIntroducing Protobuf Editions - Matt Kulukundis & Mike Kruskal, Google
21mMy Protobuf Module is Faster than Yours (Because I Cheated)
25mRethinking Data Flow in gRPC-Go: Maximizing Memor...
07mGRPC & Go
27mEvolution of serialization formats and usage in Go
25mThe State of the Gopher
42mgRPC and Go: Developing Efficient and Type-Safe Services
10mGo I made all the mistakes
