Protocol Buffers
Language-neutral mechanism for serializing structured data
Protobuf is loading Edition 2026 with enforced defaults, one release candidate at a time.
◆Recent moves
- 2d ago
JSON options protos ship in the release artifacts
The second 36.0 candidate is consolidation rather than new policy: json_options.proto and json_enumvalue_options.proto now ship in release artifacts across languages, and upb picks up the JSON enum value name path the other runtimes already had. A deprecation warning on Reflection::GetEnum continues the steady pruning of the C++ reflection surface.
View source ↗ - 27d ago
Edition 2026 tightens: strict symbol visibility, proto limits
⚡ SPARKThis is where Edition 2026 stops being a naming convention and becomes an enforcement regime, with symbol visibility defaulting to strict and descriptor-level limits on by default. It sets the terms anyone adopting the edition will have to meet before 36.0 goes final.
View source ↗ - 1mo ago
Bazel proto fragment dependency reverted to 34.x behavior
A corrective release that walks back 35.0's dependency on Bazel's proto fragment, restoring 34.x behavior and honoring only the Starlark --proto_toolchain_for flags. Notably, the project labels its own fix a breaking change from 35.0 — a sign of how much churn the Bazel 9 migration is generating.
View source ↗ - 2mo ago
GCC workarounds and an upb overflow fix
A maintenance patch on the 34 line: a GCC attribute-handling workaround, an extension registry fix and a theoretical pointer overflow in upb. Nothing here touches the editions work driving the main line.
View source ↗ - 2mo ago
Edition 2026 starts enforcing naming style; Bazel 7 dropped
⚡ SPARK35.0 opens the Edition 2026 program with the first enforced rule and simultaneously resets the supported build toolchain. Everything the 36.0 candidates add — strict visibility, proto limits — extends the mechanism established here.
View source ↗