Releases: protocolbuffers/protobuf
Releases · protocolbuffers/protobuf
Protocol Buffers v25.2
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
Protocol Buffers v25.1
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Python
- Raise warnings for deprecated python syntax usages (74f5cf4)
Ruby
Protocol Buffers v25.0
Announcements
- This release fixes CVE-2024-2410 (note: there may be a delay in the publication of this CVE number), a minor vulnerability in the C++ JSON parser. In certain situations, a malicious JSON input could cause the parser to copy data that has already been freed into an error message. This can only happen if the code is parsing from a stream with separate chunks rather than a contiguous array. The bug was introduced in 4.22.0 and was fixed with b955165 in 4.25.0 and up.
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Implement proto2/proto3 with editions (3813b66)
- Defines Protobuf compiler version strings as macros and separates out suffix string definition. (3c59585)
- Add utf8_validation feature back to the global feature set. (153028d)
- Setting up version updater to prepare for poison pills and embedding version info into C++, Python and Java gencode. (4322e00)
- Merge the protobuf and upb Bazel repos (7286ffc)
- Editions: Introduce functionality to protoc for generating edition feature set defaults. (4019e25)
- Editions: Migrate edition strings to enum in C++ code. (f083ebf)
- Create a reflection helper for ExtensionIdentifier. (4d5ab73)
- Editions: Provide an API for C++ generators to specify their features. (e897bcf)
- Editions: Refactor feature resolution to use an intermediate message. (57d8049)
- Publish extension declarations with declaration verifications. (e72b0e1)
- Editions: Stop propagating partially resolved feature sets to plugins. (b66ef4c)
- Editions: Migrate string_field_validation to a C++ feature (1f95830)
- Editions: Include defaults for any features in the generated pool. (15863ff)
- Protoc: parser rejects explicit use of map_entry option (#13479) (8f59292)
- Protoc: validate that reserved range start is before end (#13474) (3be00f7)
- Protoc: support identifiers as reserved names in addition to string literals (only in editions) (#13471) (e701f4f)
- Drop support for Bazel 5. (a80daa2)
- Allow code generators to specify whether or not they support editions. (2176a14)
C++
- Set
PROTOBUF_EXPORT
onInternalOutOfLineDeleteMessageLite()
(#14434) (db89a51) - Update stale checked-in files (#14431) (ada0be8)
- Apply PROTOBUF_NOINLINE to declarations of some functions that want it. (6e848b0)
- Implement proto2/proto3 with editions (3813b66)
- Make JSON UTF-8 boundary check inclusive of the largest possible UTF-8 character. (e80b8ec)
- Reduce
Map::size_type
to 32-bits. Protobuf containers can't have more than (95d2b2e) - Defines Protobuf compiler version strings as macros and separates out suffix string definition. (3c59585)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated oneof accessors. (e33e0d2) - Fix bug in reflection based Swap of map fields. (bef5b75)
- Add utf8_validation feature back to the global feature set. (153028d)
- Setting up version updater to prepare for poison pills and embedding version info into C++, Python and Java gencode. (4322e00)
- Add prefetching to arena allocations. (fbdeb5a)
- Merge the protobuf and upb Bazel repos (7286ffc)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated repeated and map field accessors. (9a0a3cf) - Editions: Migrate edition strings to enum in C++ code. (f083ebf)
- Workaround ICE on gcc 7.5 by not having one overload call the other one with a (0522054)
- Create a reflection helper for ExtensionIdentifier. (4d5ab73)
- Editions: Provide an API for C++ generators to specify their features. (e897bcf)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated string field accessors. (18c338a) - Editions: Refactor feature resolution to use an intermediate message. (57d8049)
- Fixes for 32-bit MSVC. (66cf6b1)
- Publish extension declarations with declaration verifications. (e72b0e1)
- Export the constants in protobuf's any.h to support DLL builds. (fd24b1b)
- Implement AbslStringify for the Descriptor family of types. (230232a)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated message field accessors. (064035c) - Editions: Stop propagating partially resolved feature sets to plugins. (b66ef4c)
- Editions: Migrate string_field_validation to a C++ feature (1f95830)
- Editions: Include defaults for any features in the generated pool. (15863ff)
- Introduce C++ feature for UTF8 validation. (c7119e6)
- Protoc: validate that reserved range start is before end (#13474) (3be00f7)
- Remove option to disable the table-driven parser in protoc. (6d03f9b)
- Lock down ctype=CORD in proto file. (b359e50)
- Support split repeated fields. (5b5e5bf)
- In OSS mode omit some extern template specializations. We have seen reports of (ab96824)
- Automated rollback of commit adb2c4b. (0ea0052)
- Allow code generators to specify whether or not they support editions. (2176a14)
- Handle conflicting macros for FreeBSD (#13303) (2a95295)
Java
- Implement proto2/proto3 with editions (3813b66)
- Remove synthetic oneofs from Java gencode field accessor tables. (https://github.com/protocolbuffers/protobuf...
Protocol Buffers v25.0-rc2
Protocol Buffers v25.0-rc1
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Implement proto2/proto3 with editions (3813b66)
- Defines Protobuf compiler version strings as macros and separates out suffix string definition. (3c59585)
- Add utf8_validation feature back to the global feature set. (153028d)
- Setting up version updater to prepare for poison pills and embedding version info into C++, Python and Java gencode. (4322e00)
- Merge the protobuf and upb Bazel repos (7286ffc)
- Editions: Introduce functionality to protoc for generating edition feature set defaults. (4019e25)
- Editions: Migrate edition strings to enum in C++ code. (f083ebf)
- Create a reflection helper for ExtensionIdentifier. (4d5ab73)
- Editions: Provide an API for C++ generators to specify their features. (e897bcf)
- Editions: Refactor feature resolution to use an intermediate message. (57d8049)
- Publish extension declarations with declaration verifications. (e72b0e1)
- Editions: Stop propagating partially resolved feature sets to plugins. (b66ef4c)
- Editions: Migrate string_field_validation to a C++ feature (1f95830)
- Editions: Include defaults for any features in the generated pool. (15863ff)
- Protoc: parser rejects explicit use of map_entry option (#13479) (8f59292)
- Protoc: validate that reserved range start is before end (#13474) (3be00f7)
- Protoc: support identifiers as reserved names in addition to string literals (only in editions) (#13471) (e701f4f)
- Drop support for Bazel 5. (a80daa2)
- Allow code generators to specify whether or not they support editions. (2176a14)
C++
- Apply PROTOBUF_NOINLINE to declarations of some functions that want it. (6e848b0)
- Implement proto2/proto3 with editions (3813b66)
- Make JSON UTF-8 boundary check inclusive of the largest possible UTF-8 character. (e80b8ec)
- Reduce
Map::size_type
to 32-bits. Protobuf containers can't have more than (95d2b2e) - Defines Protobuf compiler version strings as macros and separates out suffix string definition. (3c59585)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated oneof accessors. (e33e0d2) - Fix bug in reflection based Swap of map fields. (bef5b75)
- Add utf8_validation feature back to the global feature set. (153028d)
- Setting up version updater to prepare for poison pills and embedding version info into C++, Python and Java gencode. (4322e00)
- Add prefetching to arena allocations. (fbdeb5a)
- Merge the protobuf and upb Bazel repos (7286ffc)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated repeated and map field accessors. (9a0a3cf) - Editions: Migrate edition strings to enum in C++ code. (f083ebf)
- Workaround ICE on gcc 7.5 by not having one overload call the other one with a (0522054)
- Create a reflection helper for ExtensionIdentifier. (4d5ab73)
- Editions: Provide an API for C++ generators to specify their features. (e897bcf)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated string field accessors. (18c338a) - Editions: Refactor feature resolution to use an intermediate message. (57d8049)
- Fixes for 32-bit MSVC. (66cf6b1)
- Publish extension declarations with declaration verifications. (e72b0e1)
- Export the constants in protobuf's any.h to support DLL builds. (fd24b1b)
- Implement AbslStringify for the Descriptor family of types. (230232a)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated message field accessors. (064035c) - Editions: Stop propagating partially resolved feature sets to plugins. (b66ef4c)
- Editions: Migrate string_field_validation to a C++ feature (1f95830)
- Editions: Include defaults for any features in the generated pool. (15863ff)
- Introduce C++ feature for UTF8 validation. (c7119e6)
- Protoc: validate that reserved range start is before end (#13474) (3be00f7)
- Remove option to disable the table-driven parser in protoc. (6d03f9b)
- Lock down ctype=CORD in proto file. (b359e50)
- Support split repeated fields. (5b5e5bf)
- In OSS mode omit some extern template specializations. We have seen reports of (ab96824)
- Automated rollback of commit adb2c4b. (0ea0052)
- Allow code generators to specify whether or not they support editions. (2176a14)
- Handle conflicting macros for FreeBSD (#13303) (2a95295)
Java
- Implement proto2/proto3 with editions (3813b66)
- Remove synthetic oneofs from Java gencode field accessor tables. (9ad2268)
- Timestamps.parse: Add error handling for invalid hours/minutes in the timezone offset. (8f85138)
- Defines Protobuf compiler version strings as macros and separates out suffix string definition. (3c59585)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on generated oneof accessors. (e33e0d2) - Automated rollback of commit 2a55706. (30b6251)
- Add missing debugging version info to Protob...
Protocol Buffers v24.4
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Add dependency on absl::layout, and explicitly include absl layout includes (#14042) (96c1a7d)
- Include Abseil's str_cat.h for absl::AlphaNum (#14054) (955d371)
Java
Python
Protocol Buffers v24.3
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
Python
Python C-Extension (Default)
- Added malloc_trim() calls to Python allocator so RSS will decrease when memory is freed (protocolbuffers/upb@b0f5d5d)
UPB (Python/PHP/Ruby C-Extension)
Protocol Buffers v24.2
C++
- Fixes for 32-bit MSVC. (01e1a5c)
Protocol Buffers v24.1
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Python
Python C-Extension (Default)
- Revert CopyFrom() optimization that was causing crashes back to Serialize/Parse (protocolbuffers/upb@78e9694)
Ruby
Ruby C-Extension
Protocol Buffers v24.0
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Drop support for Bazel 5. (fff4905)
- Allow code generators to specify whether or not they support editions. (e2cec78)
- Release prototype of Protobuf Editions. (4f9e417)
- Compiler: Correct depfile generation when there are no outputs (a44fc2b)
- Add dllexport_decl for generated default instance. (#13085) (9d0961a)
- In TSan mode, detect concurrent mutations of repeated/map fields. (d800c5f)
- Add a workaround for GCC constexpr bug (e15326b)
- Turn on the table-driven parser by default, as it is no longer experimental. (c3e2efe)
- Shrink code size of generated protocol buffer code via a few (97c3513)
- Implement enforcement of target constraints (e3848c1)
- Fix(libprotoc): export useful symbols from .so (44b4bcc)
C++
- In OSS mode omit some extern template specializations. We have seen reports of compilers falling over due to the size of translation units. (2ed49c9)
- Automated rollback of commit adb2c4b. (9f2d7ea)
- Fix building shared libraries on MinGW-w64 (#13240) (c2f07bb)
- Enable TSan validation to detect when a mutable accessor of a message is called concurrently with another accessor on the same message, which is a data race. (0275e51)
- Release prototype of Protobuf Editions. (4f9e417)
- Enable TSan validation to detect when a mutable accessor of a message is called concurrently with another accessor on the same message, which is a data race. (e2eae81)
- Fix case of locality optimizer being wrong for split repeated fields and add a check that the optimized order has the same size as the unoptimized order. (76a327e)
- Enable TSan validation to detect when a mutable accessor of a message is called concurrently with another accessor on the same message, which is a data race. (80dbc50)
- Mark single arg ctor explicit in DynamicMessageFactory. (8fe88a5)
- Enable TSan validation to detect when a mutable accessor of a message is called concurrently with another accessor on the same message, which is a data race. (6d79d13)
- Let ParseRepeatedStringOnce call AllocateFromStringBlock(). (bcf3e36)
- Check next tag in MpRepeatedMessage. (9e1cf6f)
- When parsing repeated primitives, append to a tmp array on stack. (adb2c4b)
- Add dllexport_decl for generated default instance. (#13085) (9d0961a)
TextFormat::ParseFieldValueFromString
now takesabsl::string_view
asinput
instead ofconst std::string &
(5411fc6)- In TSan mode, detect concurrent mutations of repeated/map fields. (d800c5f)
- Use the same ABI for static and shared libraries on non-Windows platforms (#12983) (4329fde)
- Replace ColdChunkSkipper with iterator-based approach. (ad677f3)
- Check invalid type_id after casting it to uint32_t. (d890126)
- Strengthen assertions on reflection methods. (eb5e9e0)
- Add assertions to reflection methods. (5866e45)
- Fail to parse message sets if type_id is zero. (bc1b1f6)
- Enable the use of [SU]Int32Size and EnumSize templates for AArch64 (#11102) (e285d3e)
- Add a workaround for GCC constexpr bug (e15326b)
- Add
ABSL_ATTRIBUTE_LIFETIME_BOUND
attribute on Map, RepeatedField and RepeatedPtrField. (7b7ba2d) - Turn on the table-driven parser by default, as it is no longer experimental. (c3e2efe)
- Fix: avoid warnings on MSVC (#12697) (4fcf2c0)
- Fix: avoid warnings on Windows (#12701) (f9108c2)
- Shrink code size of generated protocol buffer code via a few (97c3513)
- Fix(libprotoc): export useful symbols from .so (#12619) (b1ae4fa)
- Forbid embedded nulls in
json_name
. (b478a29) - Implement option retention for C# (5f64444)
- Implement enforcement of target constraints (e3848c1)
- Make RepeatedField and RepeatedPtrField be destructor skippable for proto arenas. (e4168df)
- Update MessageDifferencer to conditionally force comparing additional fields while doing PARTIAL comparison (compare fields which are not repeated, have no presence and are set to their default value). (748f57f)
- CMake: Use the correct jsoncpp target name in static builds (#12733) (d372fcd)
- Fix: missing -DPROTOBUF_USE_DLLS in pkg-config (#12700) (f86008a)
- Avoid using string(JOIN..., which requires cmake 3.12 (adee0a5)
Java
- Put a 4k limit on preallocation to prevent OOM from malformed inputs. (173adca)
- Mark OneofDescriptor.isSynthetic() deprecated. (b6b86e2)
- Use ProtobufArrayList for repeated bytes field. Presize primitive arrays for fixed-length primitives. (b0b926a)
- Add protobuf-kotlin into protobuf-bom (#12936) (943b696)
- Handle clear for Java proto3 optionals (synthetic oneofs) using field descriptor instead of clear method. (a534902)
- Deps: Update Guava to 32.0.0 (#12953) (cd615a8)
- Migrate repeated numeric fields to use bit field to track presence instead of using it to indicate the field mutability to potentially skip work on the field during build operations. (f0de774)
- Automated rollback of commit 3e188b7. (a1b3ff0)
Csharp
- [C#] Replace regex that validates descriptor names (#12174) (https://github.com/protocolbuffers/...