Protobuf

Latest version: v5.27.2

Safety actively analyzes 641954 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 23 of 27

3.7.0rc.3

3.7.0rc2

Not secure

3.7.0rc1

3.6.1

Not secure
C++
* Introduced workaround for Windows issue with std::atomic and std::once_flag initialization (4777, 4773)

PHP
* Added compatibility with PHP 7.3 (4898)

Ruby
* Fixed Ruby crash involving Any encoding (4718)

3.6.0

Not secure
General
* We are moving protobuf repository to its own github organization (see https://github.com/google/protobuf/issues/4796). Please let us know what you think about the move by taking this survey: https://docs.google.com/forms/d/e/1FAIpQLSeH1ckwm6ZrSfmtrOjRwmF3yCSWQbbO5pTPqPb6_rUppgvBqA/viewform

C++
* Starting from this release, we now require C++11. For those we cannot yet upgrade to C++11, we will try to keep the 3.5.x branch updated with critical bug fixes only. If you have any concerns about this, please comment on issue 2780.
* Moved to C++11 types like std::atomic and std::unique_ptr and away from our old custom-built equivalents.
* Added support for repeated message fields in lite protos using implicit weak fields. This is an experimental feature that allows the linker to strip out more unused messages than previously was possible.
* Fixed SourceCodeInfo for interpreted options and extension range options.
* Fixed always_print_enums_as_ints option for JSON serialization.
* Added support for ignoring unknown enum values when parsing JSON.
* Create std::string in Arena memory.
* Fixed ValidateDateTime to correctly check the day.
* Fixed bug in ZeroCopyStreamByteSink.
* Various other cleanups and fixes.

Java
* Dropped support for Java 6.
* Added a UTF-8 decoder that uses Unsafe to directly decode a byte buffer.
* Added deprecation annotations to generated code for deprecated oneof fields.
* Fixed map field serialization in DynamicMessage.
* Cleanup and documentation for Java Lite runtime.
* Various other fixes and cleanups
* Fixed unboxed arraylists to handle an edge case
* Improved performance for copying between unboxed arraylists
* Fixed lite protobuf to avoid Java compiler warnings
* Improved test coverage for lite runtime
* Performance improvements for lite runtime

Python
* Fixed bytes/string map key incompatibility between C++ and pure-Python implementations (issue 4029)
* Added `__init__.py` files to compiler and util subpackages
* Use /MT for all Windows versions
* Fixed an issue affecting the Python-C++ implementation when used with Cython (issue 2896)
* Various text format fixes
* Various fixes to resolve behavior differences between the pure-Python and Python-C++ implementations

PHP
* Added php_metadata_namespace to control the file path of generated metadata file.
* Changed generated classes of nested message/enum. E.g., Foo.Bar, which previously generates Foo_Bar, now generates Foo/Bar
* Added array constructor. When creating a message, users can pass a php array whose content is field name to value pairs into constructor. The created message will be initialized according to the array. Note that message field should use a message value instead of a sub-array.
* Various bug fixes.

Objective-C
* We removed some helper class methods from GPBDictionary to shrink the size of the library, the functionary is still there, but you may need to do some specific +alloc / -init… methods instead.
* Minor improvements in the performance of object field getters/setters by avoiding some memory management overhead.
* Fix a memory leak during the raising of some errors.
* Make header importing completely order independent.
* Small code improvements for things the undefined behaviors compiler option was flagging.

Ruby
* Added ruby_package file option to control the module of generated class.
* Various bug fixes.

Javascript
* Allow setting string to int64 field.

Csharp
* Unknown fields are now parsed and then sent back on the wire. They can be discarded at parse time via a CodedInputStream option.
* Movement towards working with .NET 3.5 and Unity
* Expression trees are no longer used
* AOT generics issues in Unity/il2cpp have a workaround (see commit 1b219a174c413af3b18a082a4295ce47932314c4 for details)
* Floating point values are now compared bitwise (affects NaN value comparisons)
* The default size limit when parsing is now 2GB rather than 64MB
* MessageParser now supports parsing from a slice of a byte array
* JSON list parsing now accepts null values where the underlying proto representation does

3.5.1

Not secure
Planned Future Changes
* Make C++ implementation C++11 only: we plan to require C++11 to build protobuf code starting from 3.6.0 release, after unknown fields semantic changes are finished. Please join this [github issue](https://github.com/google/protobuf/issues/2780) to provide your feedback.

protoc
* Fixed a bug introduced in 3.5.0 and protoc in Windows now accepts non-ascii characters in paths again.

C++
* Removed several usages of C++11 features in the code base.
* Fixed some compiler warnings.

PHP
* Fixed memory leak in C-extension implementation.
* Added `discardUnknokwnFields` API.
* Removed duplicatd typedef in C-extension headers.
* Avoided calling private php methods (`timelib_update_ts`).
* Fixed `Any.php` to use fully-qualified name for `DescriptorPool`.

Ruby
* Added `Google_Protobuf_discard_unknown` for discarding unknown fields in
messages.

C
* Unknown fields are now preserved by default.
* Floating point values are now bitwise compared, affecting message equality check and `Contains()` API in map and repeated fields.

Page 23 of 27

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.