|
@@ -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#):
|
|
2015-05-25 version 3.0.0-alpha-3 (Objective-C/C#):
|
|
General
|
|
General
|
|
* Introduced two new language implementations (Objective-C, C#) to proto3.
|
|
* Introduced two new language implementations (Objective-C, C#) to proto3.
|