|
|
|
@ -1,3 +1,109 @@ |
|
|
|
|
2015-08-26 version 3.0.0-beta-1 (C++/Java/Python/Ruby/Nano/Objective-C/C#) |
|
|
|
|
About Beta |
|
|
|
|
* This is the first beta release of protobuf v3.0.0. Not all languages |
|
|
|
|
have reached beta stage. Languages not marked as beta are still in |
|
|
|
|
alpha (i.e., be prepared for API breaking changes). |
|
|
|
|
|
|
|
|
|
General |
|
|
|
|
* Proto3 JSON is supported in several languages (fully supported in C++ |
|
|
|
|
and Java, partially supported in Ruby/C#). The JSON spec is defined in |
|
|
|
|
the proto3 language guide: |
|
|
|
|
|
|
|
|
|
https://developers.google.com/protocol-buffers/docs/proto3#json |
|
|
|
|
|
|
|
|
|
We will publish a more detailed spec to define the exact behavior of |
|
|
|
|
proto3-conformant JSON serializers and parsers. Until then, do not rely |
|
|
|
|
on specific behaviors of the implementation if it’s not documented in |
|
|
|
|
the above spec. More specifically, the behavior is not yet finalized for |
|
|
|
|
the following: |
|
|
|
|
- Parsing invalid JSON input (e.g., input with trailing commas). |
|
|
|
|
- Non-camelCase names in JSON input. |
|
|
|
|
- The same field appears multiple times in JSON input. |
|
|
|
|
- JSON arrays contain “null” values. |
|
|
|
|
- The message has unknown fields. |
|
|
|
|
|
|
|
|
|
* Proto3 now enforces strict UTF-8 checking. Parsing will fail if a string |
|
|
|
|
field contains non UTF-8 data. |
|
|
|
|
|
|
|
|
|
C++ (Beta) |
|
|
|
|
* Introduced new utility functions/classes in the google/protobuf/util |
|
|
|
|
directory: |
|
|
|
|
- MessageDifferencer: compare two proto messages and report their |
|
|
|
|
differences. |
|
|
|
|
- JsonUtil: support converting protobuf binary format to/from JSON. |
|
|
|
|
- TimeUtil: utility functions to work with well-known types Timestamp |
|
|
|
|
and Duration. |
|
|
|
|
- FieldMaskUtil: utility functions to work with FieldMask. |
|
|
|
|
|
|
|
|
|
* Performance optimization of arena construction and destruction. |
|
|
|
|
* Bug fixes for arena and maps support. |
|
|
|
|
* Changed to use cmake for Windows Visual Studio builds. |
|
|
|
|
* Added Bazel support. |
|
|
|
|
|
|
|
|
|
Java (Beta) |
|
|
|
|
* Introduced a new util package that will be distributed as a separate |
|
|
|
|
artifact in maven. It contains: |
|
|
|
|
- JsonFormat: convert proto messages to/from JSON. |
|
|
|
|
- TimeUtil: utility functions to work with Timestamp and Duration. |
|
|
|
|
- FieldMaskUtil: utility functions to work with FieldMask. |
|
|
|
|
|
|
|
|
|
* The static PARSER in each generated message is deprecated, and it will |
|
|
|
|
be removed in a future release. A static parser() getter is generated |
|
|
|
|
for each message type instead. |
|
|
|
|
* Performance optimizations for String fields serialization. |
|
|
|
|
* Performance optimizations for Lite runtime on Android: |
|
|
|
|
- Reduced allocations |
|
|
|
|
- Reduced method overhead after ProGuarding |
|
|
|
|
- Reduced code size after ProGuarding |
|
|
|
|
|
|
|
|
|
Python (Alpha) |
|
|
|
|
* Removed legacy Python 2.5 support. |
|
|
|
|
* Moved to a single Python 2.x/3.x-compatible codebase, instead of using 2to3. |
|
|
|
|
* Fixed build/tests on Python 2.6, 2.7, 3.3, and 3.4. |
|
|
|
|
- Pure-Python works on all four. |
|
|
|
|
- Python/C++ implementation works on all but 3.4, due to changes in the |
|
|
|
|
Python/C++ API in 3.4. |
|
|
|
|
* Some preliminary work has been done to allow for multiple DescriptorPools |
|
|
|
|
with Python/C++. |
|
|
|
|
|
|
|
|
|
Ruby (Alpha) |
|
|
|
|
* Many bugfixes: |
|
|
|
|
- fixed parsing/serialization of bytes, sint, sfixed types |
|
|
|
|
- other parser bugfixes |
|
|
|
|
- fixed memory leak affecting Ruby 2.2 |
|
|
|
|
|
|
|
|
|
JavaNano (Alpha) |
|
|
|
|
* JavaNano generated code now will be put in a nano package by default to |
|
|
|
|
avoid conflicts with Java generated code. |
|
|
|
|
|
|
|
|
|
Objective-C (Alpha) |
|
|
|
|
* Added non-null markup to ObjC library. Requires SDK 8.4+ to build. |
|
|
|
|
* Many bugfixes: |
|
|
|
|
- Removed the class/enum filter. |
|
|
|
|
- Renamed some internal types to avoid conflicts with the well-known types |
|
|
|
|
protos. |
|
|
|
|
- Added missing support for parsing repeated primitive fields in packed or |
|
|
|
|
unpacked forms. |
|
|
|
|
- Added *Count for repeated and map<> fields to avoid auto-create when |
|
|
|
|
checking for them being set. |
|
|
|
|
|
|
|
|
|
C# (Alpha) |
|
|
|
|
* Namespace changed to Google.Protobuf (and NuGet package will be named |
|
|
|
|
correspondingly). |
|
|
|
|
* Target platforms now .NET 4.5 and selected portable subsets only. |
|
|
|
|
* Removed lite runtime. |
|
|
|
|
* Reimplementation to use mutable message types. |
|
|
|
|
* Null references used to represent "no value" for message type fields. |
|
|
|
|
* Proto3 semantics supported; proto2 files are prohibited for C# codegen. |
|
|
|
|
Most proto3 features supported: |
|
|
|
|
- JSON formatting (a.k.a. serialization to JSON), including well-known |
|
|
|
|
types (except for Any). |
|
|
|
|
- Wrapper types mapped to nullable value types (or string/ByteString |
|
|
|
|
allowing nullability). JSON parsing is not supported yet. |
|
|
|
|
- maps |
|
|
|
|
- oneof |
|
|
|
|
- enum unknown value preservation |
|
|
|
|
|
|
|
|
|
2015-05-25 version 3.0.0-alpha-3 (Objective-C/C#): |
|
|
|
|
General |
|
|
|
|
* Introduced two new language implementations (Objective-C, C#) to proto3. |
|
|
|
|