finds.dev← search

// the find

gogo/protobuf

★ 5,670 · Go · NOASSERTION · updated Jul 2023

[Deprecated] Protocol Buffers for Go with Gadgets

A fork of golang/protobuf that added code generation extensions for faster marshaling, fewer pointer allocations, and more idiomatic Go structs. It was the go-to choice for high-performance gRPC services for years, used by etcd, Kubernetes, CockroachDB, and others. It is officially deprecated as of October 2022 — the upstream golang/protobuf v2 (google.golang.org/protobuf) has closed most of the performance gap.

The generated marshaler/unmarshaler code (marshalto.go, unmarshal.go plugins) is genuinely fast — it avoids reflection entirely and generates tight, inlined loops. The `gogofaster` variant eliminates XXX_ fields and reduces pointer indirection, which materially cuts GC pressure in hot paths. The extension system let you annotate proto fields with Go-native types (e.g., map your UUID field directly to a uuid.UUID instead of []byte), which was a real ergonomic win before google.golang.org/protobuf existed. The test suite is thorough — the combo matrix under test/combos covers marshaler/unmarshaler/both combinations, and the golden file tests catch codegen regressions.

It is deprecated. The maintainer said so explicitly; the last commit was July 2023 and nothing new is coming. Any new project starting with this today is accruing tech debt from day one. Migrating away is painful because the generated types are not wire-compatible at the Go API level with google.golang.org/protobuf — you can't just swap the import path. The protoc-gen-gogo binary proliferation (gofast, gogofast, gogofaster, gogoslick) was always confusing and the docs never clearly explained which to use when. The GOPATH-based installation instructions are a time capsule from 2018 and will mislead anyone who follows them literally on a modern Go module setup.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →