Protocol Buffers - Google's data interchange format (grpc依赖)
https://developers.google.com/protocol-buffers/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
5.0 KiB
75 lines
5.0 KiB
2022-07-01 Unreleased version |
|
# C++ |
|
* cpp_generated_lib_linked support is removed in protoc |
|
* Reduced .pb.o object file size slightly by explicitly instantiating |
|
InternalMetadata templates in the runtime. |
|
* Breaking change: Add C++20 reserved keywords. |
|
* Fixed crash in ThreadLocalStorage for pre-C++17 compilers on 32-bit ARM. |
|
* Clarified that JSON API non-OK statuses are not a stable API. |
|
* Added a default implementation of MessageDifferencer::Reporter methods. |
|
* proto2::MapPair is now an alias to std::pair. |
|
* Hide C++ RepeatedField::UnsafeArenaSwap |
|
* Use table-driven parser for reflection based objects. |
|
* Update Map's InternalSwap() to take a pointer to the other Map. |
|
* Add ARM-optimized Varint decoding functions. |
|
* Minor optimization for parsing groups |
|
* Declare ReflectiveProtoHook class |
|
* Reduce size of VarintParse code in protocol buffers, by calling the shared |
|
routine after handling just one-byte varint encoding inline, rather than |
|
handling one-byte and two-byte varints inline. |
|
* Avoid inlining some large heavily duplicated routines in repeated_ptr_field.h |
|
* Add ReflectiveProtoHook to Reflection. |
|
* Turns on table-driven parser for reflection based objects. |
|
* Save code space by avoiding inlining of large-in-aggregate code-space MessageLite::~MessageLite destructor. |
|
* Undefine the macro `linux` when compiling protobuf |
|
* Reduce memory consumption of MessageSet parsing. |
|
* Save code space by avoiding inlining of large-in-aggregate code-space MessageLite::~MessageLite destructor. |
|
* Breaking change: Delete Arena::Init |
|
* Make a PROTOBUF_POISON/UNPOISON to reduce noise in the source |
|
* Put alignment functions in "arena_align.h" |
|
* Split off `cleanup` arena functions into "arena_cleanup.h" |
|
* Fix signed / unsigned match in CHECK_EQ |
|
* Kill Atomic<>. it's not pulling it's weight |
|
* Move AllocationPolicy out of arena_impl, and unify arena_config for bazel |
|
* Fix failure case in table-driven parser. |
|
* Add a new JSON parser. |
|
* Removed old JSON parsing code. |
|
* Introduce the Printer::{SetRedactDebugString,SetRandomizeDebugString} private flags. |
|
* Introduce global flags to control Printer::{SetRedactDebugString, SetRandomizeDebugString}. |
|
* proto3 string fields no longer trigger clang-tidy warning bugprone-branch-clone. |
|
* Fix the API of DescriptorUpgrader::set_allow_unknown_dependencies to set to True always, and to populate into the DescriptorPool as well. |
|
* Report line numbers consistently in text-format deprecated-field warnings. |
|
* Reserve C++20 keywords |
|
* Fixed C++ code generation for protos that use int32_t, uint32_t, int64_t, uint64_t, size_t as field names. |
|
* Annotate generated C++ public aliases for enum types. |
|
* Change default arena max block size from 8K to 32K. |
|
|
|
# Kotlin |
|
* Suppress deprecation warnings in Kotlin generated code. |
|
* Kotlin generated code comments now use kdoc format instead of javadoc. |
|
* Escape keywords in package names in proto generated code |
|
* Add Kotlin enum int value getters and setters |
|
|
|
# Java |
|
* Performance improvement for repeated use of FieldMaskUtil#merge by caching |
|
constructed FieldMaskTrees. |
|
* Optimized Java proto serialization gencode for protos having many extension ranges with few fields in between. |
|
* More thoroughly annotate public generated code in Java lite protocol buffers. |
|
* Fixed Bug in proto3 java lite repeated enum fields. Failed to call copyOnWrite before modifying previously built message. Causes modification to already "built" messages that should be immutable. |
|
* Fix Java reflection serialization of empty packed fields. |
|
* Refactoring java full runtime to reuse sub-message builders and prepare to migrate parsing logic from parse constructor to builder. |
|
* Move proto wireformat parsing functionality from the private "parsing constructor" to the Builder class. |
|
* Change the Lite runtime to prefer merging from the wireformat into mutable messages rather than building up a new immutable object before merging. This way results in fewer allocations and copy operations. |
|
* Make message-type extensions merge from wire-format instead of building up instances and merging afterwards. This has much better performance. |
|
* Fix TextFormat parser to build up recurring (but supposedly not repeated) sub-messages directly from text rather than building a new sub-message and merging the fully formed message into the existing field. |
|
* Fix bug in nested builder caching logic where cleared sub-field builders would remain dirty after a clear and build in a parent layer. https://github.com/protocolbuffers/protobuf/issues/10624 |
|
|
|
# Python |
|
* Changes ordering of printed fields in .pyi files from lexicographic to the same ordering found in the proto descriptor. |
|
* Adds GeneratedCodeInfo annotations to python proto .pyi outputs as a base64 encoded docstring in the last line of the .pyi file for code analysis tools. |
|
* Fix message factory's behavior in python cpp extension to return same message classes for same descriptor, even if the factories are different. |
|
* Add type annotation for enum value fields in enum classes. |
|
|
|
# Compiler |
|
* Print full path name of source .proto file on error |
|
* Include proto message type in the annotation comments.
|
|
|