Protocol Buffers v36.0

v36.0

Protocol Buffers v36.0

Added 7
  • Add bazel targets for standalone plugin binaries
  • Add --<lang>_prefix cli option
  • Add an enforce_proto_limits feature which will be implemented in Edition 2026
  • Add json_options.proto and json_enumvalue_options.proto to release artifacts
  • Add workaround for attribute handling bug in gcc < 13
  • Add json_name enumval support
  • Add a warning for potential OneofDescriptor collisions prior to Q1 2027 breaking changes
Changed 6
  • Make default_symbol_visibility STRICT in edition 2026
  • Enforce proto limits in the descriptor by default for EDITION_2026
  • Disable option sub-location mapping in open-source builds
  • Use the direct map reflection API when converting message to JSON if the repeated field reflection is not valid
  • Align C++Proto JSON behavior on the type.proto path with the descriptor.proto path
  • Make Timestamps.parse() attempt non-lenient parsing first and warning if this fails
Fixed 5
  • Disallow reserving field number INT_MAX
  • Apply path traversal guard to WriteAllToZip() matching WriteAllToDisk()
  • Validate Duration/Timestamp in TimeUtil::FromString against spec limits
  • Stop TextFormat iteration if output stream fails
  • Fix confusing error message for map value type name conflicts
Deprecated 2
  • Add deprecation warnings for (py|cc|java)_generic_service
  • Add deprecation warning for Reflection::GetEnum() and Reflection::GetRepeatedEnum()

From Protocol Buffers

Announcements

  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.
  • Migration Guide may include additional guidance for breaking changes.

Bazel

Compiler

C++

Java

Csharp

Objective-C

Rust

Python

PHP

PHP C-Extension

Ruby

UPB (Python/PHP/Ruby C-Extension)

Other

View original

Upgraded? How did it go?

Discussion