Protocol Buffers v35.0

v35.0

Protocol Buffers v35.0

Added 7
  • Implement the Edition 2026 naming style enforcement feature to help prevent field name collisions
  • Add enum to enforce_naming_style feature to avoid field naming collisions in Edition 2026
  • Add proto2::sort and stable_sort utilities optimized for Protobuf containers
  • Add proto2::erase and erase_if utilities optimized for Protobuf containers
  • Add native Abseil flag support to protobuf message types
  • Introduce Arena::UniquePtr and Arena::Ptr smart pointers to better manage memory
  • Introduce Singular trait for types which are allowed as simple fields
Changed 7
  • Move protocopt flag out of the cc dir since it is not a c++-specific flag
  • Change @protobuf//bazel/flags:prefer_prebuilt_proto flag to True
  • Change _opt() accessors to return an std::Option instead of protobuf::Optional
  • Make Message's trait bounds much better for generic use
  • Improve the namespacing selected by rustc used for gencode types in errors
  • Fully qualify scalar types in Kotlin/Native proto generator
  • Extend Abseil flag support for enums to include std::vector<Enum>
Fixed 7
  • Mangle types named XyzView if there is any direct sibling named Xyz
  • Fail writing files in protoc CLI if any file output path is relative
  • Enhance ParseInfoTree to provide location of names and values
  • Add integer overflow check to RepeatedPtrField::MergeFrom
  • Add sanity check for ListFields reflection call
  • Fix edition 2024 visibility checking for service method input and output types
  • Fix data race in Python Free Threading by removing unnecessary SetHasBitForRepeated() call
Removed 1
  • Drop support for Bazel 7

Announcements

  • Protobuf News may include additional announcements or pre-announcements for upcoming changes.

Bazel

Compiler

C++

Java

Csharp

Objective-C

Rust

Python

PHP

PHP C-Extension

Ruby

Ruby C-Extension

UPB (Python/PHP/Ruby C-Extension)

View original

Upgraded? How did it go?

Discussion