v21.0-rc1
版本发布时间: 2022-05-12 05:43:43
protocolbuffers/protobuf最新发布版本:v28.1(2024-09-12 01:21:10)
Versions
- Versioning scheme is changing to decouple major versions for languages
- Minor and patch versions will remain coupled
- Compilers and releases will refer to the version as just the minor and micro versions (i.e. 21.0)
- See here for more information on this change
C++
- Rename main cmake/CMakeLists.txt to CMakeLists.txt (#9603)
- avoid allocating memory if all extension are cleared (#9345)
- cmake: Call get_filename_component() with DIRECTORY mode instead of PATH mode (#9614)
- Escape GetObject macro inside protoc-generated code (#9739)
- Update CMake configuration to add a dependency on Abseil (#9793)
- Use __constinit only in GCC 12.2 and up (#9936)
- Refactor generated message class layout
- Optimize tokenizer ParseInteger by removing division
- Reserve exactly the right amount of capacity in ExtensionSet::MergeFrom
- Parse FLT_MAX correctly when represented in JSON
Java
- Update protobuf_version.bzl to separate protoc and per-language java … (#9900)
- 6x speedup in ArrayEncoder.writeUInt32NotTag
Python
- Increment python major version to 4 in version.json for python upb (#9926)
- The C extension module for Python has been rewritten to use the upb library. This is expected to deliver significant performance benefits, especially when parsing large payloads. There are some minor breaking changes, but these should not impact most users. For more information see: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
- Due to the breaking changes for Python, the major version number for Python has been incremented.
- The binary wheel for macOS now supports Apple silicon.
PHP
- chore: [PHP] fix phpdoc for MapField keys (#9536)
- [PHP] Remove unnecessary zval initialization (#9600)
- [PHP] fix PHP build system (#9571)
- Fix building packaged PHP extension (#9727)
- fix: reserve "ReadOnly" keyword for PHP 8.1 and add compatibility (#9633)
- fix: phpdoc syntax for repeatedfield parameters (#9784)
- fix: phpdoc for repeatedfield (#9783)
- Change enum string name for reserved words (#9780)
- Fixed composer.json to only advertise compatibility with PHP 7.0+. (#9819)
Ruby
- Allow pre-compiled binaries for ruby 3.1.0 (#9566)
- Implement
respond_to?
in RubyMessage (#9677) - [Ruby] Fix RepeatedField#last, #first inconsistencies (#9722)
- Do not use range based UTF-8 validation in truffleruby (#9769)
- Improve range handling logic of
RepeatedField
(#9799) - Disable the aarch64 build on macOS until it can be fixed. (#9816)
Compiler
- Protoc outputs the list of suggested field numbers when invalid field numbers are specified in the .proto file.
- Require package names to be less than 512 bytes in length
Other
- [Kotlin] remove redundant public modifiers for compiled code (#9642)
- [C#] Update GetExtension to support getting typed value (#9655)
- Fix invalid dependency manifest when using
descriptor_set_out
(#9647) - Fix C# generator handling of a field named "none" in a oneof (#9636)
- Add initial version.json file for 21-dev (#9840)
- Remove duplicate java generated code (#9909)
- Fix versioning issues in 3.20.0
1、 protobuf-all-21.0-rc-1.tar.gz 7.19MB
2、 protobuf-all-21.0-rc-1.zip 9.26MB
3、 protobuf-cpp-3.21.0-rc-1.tar.gz 4.61MB
4、 protobuf-cpp-3.21.0-rc-1.zip 5.61MB
5、 protobuf-csharp-3.21.0-rc-1.tar.gz 5.32MB
6、 protobuf-csharp-3.21.0-rc-1.zip 6.57MB
7、 protobuf-java-3.21.0-rc-1.tar.gz 5.28MB
8、 protobuf-java-3.21.0-rc-1.zip 6.66MB
9、 protobuf-objectivec-3.21.0-rc-1.tar.gz 4.96MB
10、 protobuf-objectivec-3.21.0-rc-1.zip 6.11MB
11、 protobuf-php-3.21.0-rc-1.tar.gz 4.9MB
12、 protobuf-php-3.21.0-rc-1.zip 6.03MB
13、 protobuf-python-4.21.0-rc-1.tar.gz 4.92MB
14、 protobuf-python-4.21.0-rc-1.zip 6.05MB
15、 protobuf-ruby-3.21.0-rc-1.tar.gz 4.83MB
16、 protobuf-ruby-3.21.0-rc-1.zip 5.89MB
17、 protoc-21.0-rc-1-linux-aarch_64.zip 1.48MB
18、 protoc-21.0-rc-1-linux-ppcle_64.zip 1.6MB
19、 protoc-21.0-rc-1-linux-s390_64.zip 1.91MB
20、 protoc-21.0-rc-1-linux-x86_32.zip 1.58MB
21、 protoc-21.0-rc-1-linux-x86_64.zip 1.48MB
22、 protoc-21.0-rc-1-osx-aarch_64.zip 1.27MB
23、 protoc-21.0-rc-1-osx-universal_binary.zip 2.66MB
24、 protoc-21.0-rc-1-osx-x86_64.zip 1.4MB
25、 protoc-21.0-rc-1-win32.zip 1.74MB
26、 protoc-21.0-rc-1-win64.zip 1.66MB