Protocol Buffers v3.18.0-rc2
Pre-release
Pre-release
C++
- Fix warnings raised by clang 11 (#8664)
- Make StringPiece constructible from std::string_view (#8707)
- Add missing capability attributes for LLVM 12 (#8714)
- Stop using std::iterator (deprecated in C++17). (#8741)
- Move field_access_listener from libprotobuf-lite to libprotobuf (#8775)
- Fix #7047 Safely handle setlocale (#8735)
- Remove deprecated version of SetTotalBytesLimit() (#8794)
- Support arena allocation of google::protobuf::AnyMetadata (#8758)
- Fix undefined symbol error around SharedCtor() (#8827)
- Fix default value of enum(int) in json_util with proto2 (#8835)
- Better Smaller ByteSizeLong
- Introduce event filters for inject_field_listener_events
- Reduce memory usage of DescriptorPool
- For lazy fields copy serialized form when allowed.
- Re-introduce the InlinedStringField class
- v2 access listener
- Reduce padding in the proto's ExtensionRegistry map.
- GetExtension performance optimizations
- Make tracker a static variable rather than call static functions
- Support extensions in field access listener
- Annotate MergeFrom for field access listener
- Fix incomplete types for field access listener
- Add map_entry/new_map_entry to SpecificField in MessageDifferencer. They
record the map items which are different in MessageDifferencer's reporter. - Reduce binary size due to fieldless proto messages
- TextFormat: ParseInfoTree supports getting field end location in addition to
start. - Fix repeated enum extension size in field listener
- Enable Any Text Expansion for Descriptors::DebugString()
- Switch from int{8,16,32,64} to int{8,16,32,64}_t
Java
- Fix errorprone conflict (#8723)
- Removing deprecated TimeUtil class. (#8749)
- Optimized FieldDescriptor.valueOf() to avoid array copying.
- Removing deprecated TimeUtil class.
- Add Durations.parseUnchecked(String) and Timestamps.parseUnchecked(String)
- FieldMaskUtil: Add convenience method to mask the fields out of a given proto.
JavaScript
- Optimize binary parsing of repeated float64
- Fix for optimization when reading doubles from binary wire format
- Replace toArray implementation with toJSON.
PHP
- Migrate PHP & Ruby to ABSL wyhash (#8854)
Ruby
- Move DSL implementation from C to pure Ruby (#8850)
Python
- Drops support for 2.7 and 3.5.