# Protocol Buffers v36.0 — Protocol Buffers v36.0 - Product: Protocol Buffers (https://whatsnew.fyi/product/protobuf) - Vendor: Google - Date: 2026-08-20 - Version: v36.0 - Original notes: https://github.com/protocolbuffers/protobuf/releases/tag/v36.0 - Permalink: https://whatsnew.fyi/product/protobuf/releases/v36.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Make default_symbol_visibility STRICT in edition 2026 - **deprecated** — Add deprecation warnings for (py|cc|java)_generic_service - **fixed** — Disallow reserving field number INT_MAX - **added** — Add bazel targets for standalone plugin binaries - **added** — Add --_prefix cli option - **changed** — Enforce proto limits in the descriptor by default for EDITION_2026 - **fixed** — Apply path traversal guard to WriteAllToZip() matching WriteAllToDisk() - **added** — Add an enforce_proto_limits feature which will be implemented in Edition 2026 - **changed** — Disable option sub-location mapping in open-source builds - **added** — Add json_options.proto and json_enumvalue_options.proto to release artifacts - **deprecated** — Add deprecation warning for Reflection::GetEnum() and Reflection::GetRepeatedEnum() - **fixed** — Validate Duration/Timestamp in TimeUtil::FromString against spec limits - **changed** — Use the direct map reflection API when converting message to JSON if the repeated field reflection is not valid - **fixed** — Stop TextFormat iteration if output stream fails - **added** — Add workaround for attribute handling bug in gcc < 13 - **fixed** — Fix confusing error message for map value type name conflicts - **changed** — Align C++Proto JSON behavior on the type.proto path with the descriptor.proto path - **added** — Add json_name enumval support - **changed** — Make Timestamps.parse() attempt non-lenient parsing first and warning if this fails - **added** — Add a warning for potential OneofDescriptor collisions prior to Q1 2027 breaking changes #### Announcements * [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. * [Migration Guide](https://protobuf.dev/support/migration/) may include additional guidance for breaking changes. #### Bazel * Add Bazel9 test (https://github.com/protocolbuffers/protobuf/commit/90ad7e978849e11406eeb47baf228b099c5da9d0) * Bazel 9 tests for csharp, hpb, objc, php, python, rust and upb (https://github.com/protocolbuffers/protobuf/commit/f9e028f29fa83d0fcfb01c19ce0a4635e9beff5c) #### Compiler * Make default_symbol_visibility STRICT in edition 2026 (https://github.com/protocolbuffers/protobuf/commit/fcd68c563cf2be486622a118caaf8c5f3858f744) * Add deprecation warnings for (py|cc|java)_generic_service. (https://github.com/protocolbuffers/protobuf/commit/517be42cfe43c9e2c69f5ee40e437a9d8cbd3f99) * Disallow reserving field number INT_MAX. (https://github.com/protocolbuffers/protobuf/commit/933c522f9e9a09d30f370dc885640af248e52469) * Add bazel targets for standalone plugin binaries (#23919) (https://github.com/protocolbuffers/protobuf/commit/81880fad1673797b6326a91582b2bf77069d505d) * Feat: `--_prefix` cli option (#24824) (https://github.com/protocolbuffers/protobuf/commit/92dd27ccf0c5c674b48de48310e0ebf45d0d5b88) * Enforce proto limits in the descriptor by default for EDITION_2026. (https://github.com/protocolbuffers/protobuf/commit/d8520d93af2aadf99afcb5e17bfb99c14ad57364) * Fix: Apply path traversal guard to WriteAllToZip() matching WriteAllToDisk() (#27171) (https://github.com/protocolbuffers/protobuf/commit/28bef9809e4d1f5f3b6da2a4a26a3bd5b488136b) * Add an `enforce_proto_limits` feature which will be implemented in Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/5ddd5244f7a04539e59f97fbc0c0df02334d0b12) #### C++ * Disable option sub-location mapping in open-source builds. (https://github.com/protocolbuffers/protobuf/commit/1d8a656f5273a3b41afa609cf0f08b65491dbd48) * Add `json_options.proto` and `json_enumvalue_options.proto` and/or gencode derived from them to release artifacts (https://github.com/protocolbuffers/protobuf/commit/15e93345f8b821ad74334fd503318f8860b774bb) * Add deprecation warning for `Reflection::GetEnum()` and `Reflection::GetRepeatedEnum()`. (https://github.com/protocolbuffers/protobuf/commit/0bca2886d724d6782186ae970a0214b6fcc3e4e0) * Migrate top-level protobuf unittest protos from Edition 2024 to Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/271ca53b50bebdb4b910563928b1f7f3d5c61990) * Util: validate Duration/Timestamp in TimeUtil::FromString against spec limits (#27443) (https://github.com/protocolbuffers/protobuf/commit/e33749537254d42895ef084e482faaba230fddc2) * Make default_symbol_visibility STRICT in edition 2026 (https://github.com/protocolbuffers/protobuf/commit/fcd68c563cf2be486622a118caaf8c5f3858f744) * Use the direct map reflection API when converting message to JSON, if the repeated field reflection is not valid. (https://github.com/protocolbuffers/protobuf/commit/e75aac33c3615d22d0cba61e8f9d92939a39a73f) * Add bazel targets for standalone plugin binaries (#23919) (https://github.com/protocolbuffers/protobuf/commit/81880fad1673797b6326a91582b2bf77069d505d) * Fix(cpp): stop TextFormat iteration if output stream fails (#26237) (https://github.com/protocolbuffers/protobuf/commit/2718dd5f3dda891f7e0224e5f50aa946219499ff) * Enforce proto limits in the descriptor by default for EDITION_2026. (https://github.com/protocolbuffers/protobuf/commit/d8520d93af2aadf99afcb5e17bfb99c14ad57364) * Add an `enforce_proto_limits` feature which will be implemented in Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/5ddd5244f7a04539e59f97fbc0c0df02334d0b12) * Workaround for attribute handling bug in gcc < 13 (https://github.com/protocolbuffers/protobuf/commit/ba10a4e179fa6cd0cbe4597f6fd19c1b3442c5bd) * Fix confusing error message for map value type name conflicts (http _[Truncated at 4000 characters — full notes: https://github.com/protocolbuffers/protobuf/releases/tag/v36.0]_