Skip to content

Protocol Buffers v3.17.0

Compare
Choose a tag to compare
@acozzette acozzette released this 13 May 01:10
· 157 commits to 3.17.x since this release
652d99a

Protocol Compiler

  • Fix the generated source information for reserved values in Enums.

C++

  • Fix -Wunused-parameter in map<string, int> fields (fixes #8494) (#8500)
  • Use byteswap.h when building against musl libc (#8503)
  • Fix -Wundefined-inline error when using SharedCtor() or SharedDtor() (#8532)
  • Fix bug where Descriptor::DebugString() printed proto3 synthetic oneofs.
  • Provide stable versions of SortAndUnique().
  • Make sure to cache proto3 optional message fields when they are cleared.
  • Expose UnsafeArena methods to Reflection.
  • Use std::string::empty() rather than std::string::size() > 0.

Kotlin

  • Introduce support for Kotlin protos (#8272)
  • Restrict extension setter and getter operators to non-nullable T.

Java

  • updating GSON and Guava to more recent versions (#8524)
  • Reduce the time spent evaluating isExtensionNumber by storing the extension
    ranges in a TreeMap for faster queries. This is particularly relevant for
    protos which define a large number of extension ranges, for example when
    each tag is defined as an extension.
  • Fix java bytecode estimation logic for optional fields.
  • Optimize Descriptor.isExtensionNumber.

Python

  • Add MethodDescriptor.CopyToProto() (#8327)
  • Remove unused python_protobuf.{cc,h} (#8513)
  • Start publishing python aarch64 manylinux wheels normally (#8530)
  • Fix constness issue detected by MSVC standard conforming mode (#8568)
  • Make JSON parsing match C++ and Java when multiple fields from the same
    oneof are present and all but one is null.

Ruby

  • Add support for proto3 json_name in compiler and field definitions (#8356)
  • Fixed memory leak of Ruby arena objects. (#8461)
  • Fix source gem compilation (#8471)
  • Fix various exceptions in Ruby on 64-bit Windows (#8563)
  • Fix crash when calculating Message hash values on 64-bit Windows (#8565)

Conformance Tests

  • Added a conformance test for the case of multiple fields from the same
    oneof.

Other

  • Use a newer version of rules_proto, with the new rule proto_descriptor_set (#8469)