Releases
v3.14.0
Protocol Compiler
The proto compiler no longer requires a .proto filename when it is not
generating code.
Added flag --deterministic_output
to protoc --encode=...
.
Fixed deadlock when using google.protobuf.Any embedded in aggregate options.
C++
Arenas are now unconditionally enabled. cc_enable_arenas no longer has
any effect.
Removed inlined string support, which is incompatible with arenas.
Fix a memory corruption bug in reflection when mixing optional and
non-optional fields.
Make SpaceUsed() calculation more thorough for map fields.
Add stack overflow protection for text format with unknown field values.
FieldPath::FollowAll() now returns a bool to signal if an out-of-bounds
error was encountered.
Performance improvements for Map.
Minor formatting fix when dumping a descriptor to .proto format with
DebugString.
UBSAN fix in RepeatedField (#2073 ).
When running under ASAN, skip a test that makes huge allocations.
Fixed a crash that could happen when creating more than 256 extensions in
a single message.
Fix a crash in BuildFile when passing in invalid descriptor proto.
Parser security fix when operating with CodedInputStream.
Warn against the use of AllowUnknownExtension.
Migrated to C++11 for-range loops instead of index-based loops where
possible. This fixes a lot of warnings when compiling with -Wsign-compare.
Fix segment fault for proto3 optional (#7805 )
Adds a CMake option to build libprotoc
separately (#7949 )
Java
Bugfix in mergeFrom() when a oneof has multiple message fields.
Fix RopeByteString.RopeInputStream.read() returning -1 when told to read
0 bytes when not at EOF.
Redefine remove(Object) on primitive repeated field Lists to avoid
autoboxing.
Support "\u" escapes in textformat string literals.
Trailing empty spaces are no longer ignored for FieldMask.
Fix FieldMaskUtil.subtract to recursively remove mask.
Mark enums with @java.lang.Deprecated
if the proto enum has option
deprecated = true;
.
Adding forgotten duration.proto to the lite library (#7738 )
Python
Print google.protobuf.NullValue as null instead of "NULL_VALUE" when it is
used outside WKT Value/Struct.
Fix bug occurring when attempting to deep copy an enum type in python 3.
Add a setuptools extension for generating Python protobufs (#7783 )
Remove uses of pkg_resources in non-namespace packages. (#7902 )
[bazel/py] Omit google/init .py from the Protobuf runtime. (#7908 )
Removed the unnecessary setuptools package dependency for Python package (#7511 )
Fix PyUnknownFields memory leak (#7928 )
PHP
Added support for "==" to the PHP C extension (#7883 )
Added ==
operators for Map and Array. (#7900 )
Native C well-known types (#7944 )
Optimized away hex2bin() call in generated code (#8006 )
New version of upb, and a new hash function wyhash in third_party. (#8000 )
add missing hasOneof method to check presence of oneof fields (#8003 )
Go
Update go_package options to reference google.golang.org/protobuf module.
C#
annotate ByteString.CopyFrom(ReadOnlySpan) as SecuritySafeCritical (#7701 )
Fix C# optional field reflection when there are regular fields too (#7705 )
Fix parsing negative Int32Value that crosses segment boundary (#8035 )
Javascript
JS: parse (un)packed fields conditionally (#7379 )
You can’t perform that action at this time.