|
|
|
@ -1,3 +1,83 @@ |
|
|
|
|
2016-07-15 version 3.0.0-beta-4 (C++/Java/Python/Ruby/Objective-C/C#/JavaScript) |
|
|
|
|
General |
|
|
|
|
* Added a deterministic serialization API for C++ and Java. The deterministic |
|
|
|
|
serialization guarantees that given a binary, equal messages will be |
|
|
|
|
serialized to the same bytes. This allows applications like MapReduce to |
|
|
|
|
group equal messages based on the serialized bytes. The deterministic |
|
|
|
|
serialization is, however, NOT canonical across languages; it is also |
|
|
|
|
unstable across different builds with schema changes due to unknown fields. |
|
|
|
|
Users who need canonical serialization, e.g. persistent storage in a |
|
|
|
|
canonical form, fingerprinting, etc, should define their own |
|
|
|
|
canonicalization specification and implement the serializer using reflection |
|
|
|
|
APIs rather than relying on this API. |
|
|
|
|
* Added OneofOptions. You can now define custom options for oneof groups. |
|
|
|
|
import "google/protobuf/descriptor.proto"; |
|
|
|
|
extend google.protobuf.OneofOptions { |
|
|
|
|
optional int32 my_oneof_extension = 12345; |
|
|
|
|
} |
|
|
|
|
message Foo { |
|
|
|
|
oneof oneof_group { |
|
|
|
|
(my_oneof_extension) = 54321; |
|
|
|
|
... |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
C++ (beta) |
|
|
|
|
* Introduced a deterministic serialization API in |
|
|
|
|
CodedOutputStream::SetSerializationDeterministic(bool). See the notes about |
|
|
|
|
deterministic serialization in the General section. |
|
|
|
|
* Added google::protobuf::Map::swap() to swap two map fields. |
|
|
|
|
* Fixed a memory leak when calling Reflection::ReleaseMessage() on a message |
|
|
|
|
allocated on arena. |
|
|
|
|
* Improved error reporting when parsing text format protos. |
|
|
|
|
* JSON |
|
|
|
|
- Added a new parser option to ignore unknown fields when parsing JSON. |
|
|
|
|
- Added convenient methods for message to/from JSON conversion. |
|
|
|
|
* Various performance optimizations. |
|
|
|
|
|
|
|
|
|
Java (beta) |
|
|
|
|
* Introduced a deterministic serialization API in |
|
|
|
|
CodedOutputStream#useDeterministicSerialization(). See the notes about |
|
|
|
|
deterministic serialization in the General section. |
|
|
|
|
* File option "java_generate_equals_and_hash" is now deprecated. equals() and |
|
|
|
|
hashCode() methods are generated by default. |
|
|
|
|
* Added a new JSON printer option "omittingInsignificantWhitespace" to produce |
|
|
|
|
a more compact JSON output. The printer will pretty-print by default. |
|
|
|
|
* Updated Java runtime to be compatible with 2.5.0/2.6.1 generated protos. |
|
|
|
|
|
|
|
|
|
Python (beta) |
|
|
|
|
* Added support to pretty print Any messages in text format. |
|
|
|
|
* Added a flag to ignore unknown fields when parsing JSON. |
|
|
|
|
* Bugfix: "@type" field of a JSON Any message is now correctly put before |
|
|
|
|
other fields. |
|
|
|
|
|
|
|
|
|
Objective-C (beta) |
|
|
|
|
* Updated the code to support compiling with more compiler warnings |
|
|
|
|
enabled. (Issue 1616) |
|
|
|
|
* Exposing more detailed errors for parsing failures. (PR 1623) |
|
|
|
|
* Small (breaking) change to the naming of some methods on the support classes |
|
|
|
|
for map<>. There were collisions with the system provided KVO support, so |
|
|
|
|
the names were changed to avoid those issues. (PR 1699) |
|
|
|
|
* Fixed for proper Swift bridging of error handling during parsing. (PR 1712) |
|
|
|
|
* Complete support for generating sources that will go into a Framework and |
|
|
|
|
depend on generated sources from other Frameworks. (Issue 1457) |
|
|
|
|
|
|
|
|
|
C# (beta) |
|
|
|
|
* RepeatedField optimizations. |
|
|
|
|
* Support for .NET Core. |
|
|
|
|
* Minor bug fixes. |
|
|
|
|
* Ability to format a single value in JsonFormatter (advanced usage only). |
|
|
|
|
* Modifications to attributes applied to generated code. |
|
|
|
|
|
|
|
|
|
Javascript (alpha) |
|
|
|
|
* Maps now have a real map API instead of being treated as repeated fields. |
|
|
|
|
* Well-known types are now provided in the google-protobuf package, and the |
|
|
|
|
code generator knows to require() them from that package. |
|
|
|
|
* Bugfix: non-canonical varints are correctly decoded. |
|
|
|
|
|
|
|
|
|
Ruby (alpha) |
|
|
|
|
* Accessors for oneof fields now return default values instead of nil. |
|
|
|
|
|
|
|
|
|
2016-05-16 version 3.0.0-beta-3 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaScript) |
|
|
|
|
General |
|
|
|
|
* Supported Proto3 lite-runtime in C++/Java for mobile platforms. |
|
|
|
|