<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>News on Protocol Buffers Documentation</title><link>https://protobuf.dev/news/</link><description>Recent content in News on Protocol Buffers Documentation</description><generator>Hugo</generator><language>en</language><atom:link href="https://protobuf.dev/news/index.xml" rel="self" type="application/rss+xml"/><item><title>Changes announced April 11, 2023</title><link>https://protobuf.dev/news/2023-04-11/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-04-11/</guid><description>Syntax Reflection Deprecation v23 will deprecate the ability to check syntax version using reflection. The deprecation will be included as warnings at build time. The capability will be removed in a future release.
Adding support for ctype=CORD in C++ v23 will add ctype=CORD support for singular bytes fields, including oneof fields, to specify that data should be stored using absl::cord instead of string. Support may be added in future releases for singular string field types and for repeated string and byte fields if there is enough interest from the open source community.</description></item><item><title>Changes announced April 20, 2023</title><link>https://protobuf.dev/news/2023-04-20/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-04-20/</guid><description>Changes to Ruby Generator This GitHub PR, which will appear in the 23.x release, changes the Ruby code generator to emit a serialized proto instead of the DSL.
It removes the DSL from the code generator in anticipation of splitting the DSL out into a separate package.
Given a .proto file like:
syntax = &amp;#34;proto3&amp;#34;; package pkg; message TestMessage { optional int32 i32 = 1; optional TestMessage msg = 2; } Generated code before:</description></item><item><title>Changes announced April 28, 2023</title><link>https://protobuf.dev/news/2023-04-28/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-04-28/</guid><description>Stricter validation for json_name v24 will forbid zero unicode code points (\u0000) in the json_name field option. Going forward, any valid Unicode characters will be accepted in json_name, except \u0000. \0 characters will still be allowed to be used as values.
Previously, the proto compiler allowed \0 characters in the json_name field option, but support for this was inconsistent across languages and implementations. To help prevent interoperability problems relating to mishandling of keys containing a \0 character, we are clarifying the spec to say that \0 is not allowed in json_name, and will be rejected by the compiler.</description></item><item><title>Changes Announced on August 15, 2023</title><link>https://protobuf.dev/news/2023-08-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-08-15/</guid><description>Python Breaking Change In v25 message.UnknownFields() will be deprecated in pure Python and C++ extensions. It will be removed in v26. Use the new UnknownFieldSet(message) support in unknown_fields.py as a replacement.</description></item><item><title>Changes announced August 3, 2022</title><link>https://protobuf.dev/news/2022-08-03/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2022-08-03/</guid><description>This topic covers two areas: general platform support changes, and C++-specific changes that are being considered for the 22.x release line.
Platform Support Changes We&amp;rsquo;ve added guidance about the platforms that we support in this section of the documentation. The section currently covers C++ and PHP, but may be expanded with information about other platforms in the future.
Official C++ Support Matrix With the policy, mentioned earlier in this announcement, of using Google&amp;rsquo;s official foundational C++ support policy, our C++ compiler and toolchain support matrix will change.</description></item><item><title>Changes Announced on August 9, 2023</title><link>https://protobuf.dev/news/2023-08-09/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-08-09/</guid><description>.NET support policy The Protobuf team supports .NET in two ways:
Generation of C# code by protoc The Google.Protobuf NuGet package, which provides runtime support for the generated code, as well as reflection and other facilities The support policy for these has previously been unclear, particularly in terms of which .NET runtimes are supported. From August 2023 onwards, support will be provided in accordance with the Google Open Source support policy for .</description></item><item><title>Changes announced on December 13, 2023</title><link>https://protobuf.dev/news/2023-12-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-12-13/</guid><description>C++ Breaking Changes In v26, we are planning a major version bump for C++ as per our breaking changes policy and version support policy.
The following sections outline the set of breaking changes that we plan to include in the 26.0 release of protocol buffers. Note that plans can and do change. These are potential breaking changes to be aware of, but they may not happen in this particular release, or they may not happen at all.</description></item><item><title>Changes announced December 13, 2024</title><link>https://protobuf.dev/news/2024-12-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-12-13/</guid><description>Removing a Reflection-related Function In v30.x, we are removing the following reflection-related function: MutableRepeatedFieldRef&amp;lt;T&amp;gt;::Reserve().
An upcoming performance improvement in RepeatedPtrField is incompatible with this API. The improvement is projected to accelerate repeated access to the elements of RepeatedPtrField, in particular and especially sequential access.</description></item><item><title>Changes announced December 18, 2024</title><link>https://protobuf.dev/news/2024-12-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-12-18/</guid><description>Go Protobuf: The new Opaque API Back in March 2020, we released the google.golang.org/protobuf module, a major overhaul of the Go Protobuf API. This package introduced first-class support for reflection, a dynamicpb implementation and the protocmp package for easier testing.
That release introduced a new protobuf module with a new API. Today, we are releasing an additional API for generated code, meaning the Go code in the .pb.go files created by the protocol compiler (protoc).</description></item><item><title>Changes announced on December 27, 2023</title><link>https://protobuf.dev/news/2023-12-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-12-27/</guid><description>Ruby Breaking Changes The following changes are planned for the 26.x line:
Fix RepeatedField#each_index to have the correct semantics. (#11767) Remove Ruby DSL and associated compatibility code, which will complete the migration announced in April. Message#to_h fixes: Remove unset oneof fields. (#6167) Remove unset sub-message fields Use message&amp;rsquo;s pool for encode_json/decode_json. Remove the deprecated syntax accessor, FileDescriptor.syntax and add semantic checks in its place: FieldDescriptor.has_presence to test if a field has presence.</description></item><item><title>Changes announced December 4, 2024</title><link>https://protobuf.dev/news/2024-12-04/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-12-04/</guid><description>We are planning to modify the Protobuf debug APIs for C++ (including Protobuf AbslStringify, proto2::ShortFormat, proto2::Utf8Format, Message::DebugString, Message::ShortDebugString, Message::Utf8DebugString) in v30 to redact sensitive fields annotated by debug_redact; the outputs of these APIs will contain a per-process randomized prefix, and so will no longer be parseable by Protobuf TextFormat Parsers.
Motivation Currently Protobuf debug APIs print every field in a proto into human-readable formats. This may lead to privacy incidents where developers accidentally log Protobuf debug outputs containing sensitive fields.</description></item><item><title>Changes announced on December 5, 2023</title><link>https://protobuf.dev/news/2023-12-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-12-05/</guid><description>Java Breaking Changes In v26, we are planning a major version bump for Java per our breaking changes policy and version support policy.
The following sections outline the set of breaking changes that we plan to include in the 26.0 release of protocol buffers. Note that plans can and do change. These are potential breaking changes to be aware of, but they may not happen in this particular release, or they may not happen at all.</description></item><item><title>Changes Announced on February 27, 2024</title><link>https://protobuf.dev/news/2024-02-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-02-27/</guid><description>Dropping Ruby 2.7 Support As per our official Ruby support policy, we will be dropping support for Ruby 2.7 and lower on March 31, 2024. The minimum supported Ruby version will be 3.0.</description></item><item><title>Changes announced February 5, 2024</title><link>https://protobuf.dev/news/2024-02-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-02-05/</guid><description>This topic covers breaking changes in Java, C++, and Python in the 26.x line.
JSON Formatter Option Changes Starting in the 26.x line, the JSON formatter option to print default-valued fields is replaced with a fixed way to handle proto2 and proto3 optional fields consistently.
Java: includingDefaultValueFields() is replaced with alwaysPrintFieldsWithNoPresence(). C++: always_print_default_values is replaced with always_print_fields_with_no_presence=True. Py: including_default_value_fields=True is replaced with always_print_fields_with_no_presence=True. The new flag behaves identically to the old flag on proto3 messages, but no longer applies to proto2 optional fields.</description></item><item><title>Changes Announced on January 16, 2026</title><link>https://protobuf.dev/news/2026-01-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2026-01-16/</guid><description>Prebuilt proto compiler (protoc) for Bazel In an effort to speed up builds, protobuf 33.4 offers an option to skip re-compiling Protobuf tools and runtimes and use a pre-built protoc binary, available to Bazel 7 and later. Using a pre-built protoc also avoids build failures from incompatible or non-hermetic C++ compilation toolchain installed on your machine.
To use the prebuilt protoc, upgrade to protobuf version 33.4 or later, and set the --incompatible_enable_proto_toolchain_resolution and --@protobuf//bazel/flags:prefer_prebuilt_protoc flags.</description></item><item><title>Changes announced January 23, 2025</title><link>https://protobuf.dev/news/2025-01-23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2025-01-23/</guid><description>Poison Java gencode We are patching a change into the 25.x branch that will poison Java gencode that was created prior to the 3.21.7 release. We will then mark all versions of Java protobuf from 3.21.7 through 3.25.5 as vulnerable to the footmitten CVE.
After this change is patched in, protobuf will throw an UnsupportedOperationException from the makeExtensionsImmutable method unless you set the system property &amp;ldquo;-Dcom.google.protobuf.use_unsafe_pre22_gencode&amp;rdquo;. Using this system property can buy you some time if you can&amp;rsquo;t update your code immediately, but should be considered a short-term workaround.</description></item><item><title>Changes announced January 31, 2024</title><link>https://protobuf.dev/news/2024-01-31/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-01-31/</guid><description>This topic covers breaking changes in Python in the 26.x line.
Python Breaking Changes Removing setup.py and setup.cfg support from GitHub In the 26.x release, setup.py and setup.cfg will no longer be present in the python/ directory of the GitHub repository or GitHub release tarballs. This means it will no longer be possible to build a Python package directly from the GitHub repo or release tarball.
The Python source packages published on PyPI will continue to have a setup.</description></item><item><title>Changes announced January 5, 2024</title><link>https://protobuf.dev/news/2024-01-05/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-01-05/</guid><description>This topic covers breaking changes in Ruby and Python in the 26.x line.
Ruby Breaking Changes Freeze Is Now Recursive in Ruby Starting in the 26.x line, when freeze is applied it will be applied recursively, affecting all sub-messages, maps, and repeated fields.
Python Breaking Changes Removing Deprecated APIs In the 26.x release, the following deprecated APIs will be removed:
AddFileDescriptor AddDescriptor AddEnumDescriptor AddExtensionDescriptor AddServiceDescriptor Rejecting Extend Repeated Field with None Iterable Starting in the 26.</description></item><item><title>Changes Announced on July 13, 2026</title><link>https://protobuf.dev/news/2026-07-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2026-07-13/</guid><description>Edition 2026 We are planning to release Protobuf Editions to the open source project in 36.x in Q3 2026.
These describe changes as we anticipate them being implemented, but due to the flexible nature of software some of these changes may not land or may vary from how they are described in this topic.
More documentation on Edition 2026 will be published in Feature Settings for Editions, including the migration guide.</description></item><item><title>Changes Announced on July 14, 2025</title><link>https://protobuf.dev/news/2025-07-14/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2025-07-14/</guid><description>Deprecating FieldDescriptor Enums We are announcing an upcoming change regarding the FieldDescriptor enum and its associated values representing optional, required, and repeated. These are being deprecated as we encourage the use of more precise accessor methods.
Background While at one time the FieldDescriptor.label enum served a purpose, the evolution of Protocol Buffers has introduced more idiomatic ways to determine a field&amp;rsquo;s cardinality (singular/repeated) and presence semantics.
In proto2, optional, required, and repeated are explicit keywords.</description></item><item><title>Changes Announced on July 16, 2025</title><link>https://protobuf.dev/news/2025-07-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2025-07-16/</guid><description>Retaining support for Bazel with MSVC We announced on January 23, 2025 that we were planning to drop support for using Bazel and MSVC together starting in v34. This plan is canceled due to Bazel&amp;rsquo;s upcoming changes to virtual includes on Windows. Clang-cl support will be kept in place as an alternative on Windows. The opt-out flag --define=protobuf_allow_msvc=true will no longer be required as of the 32.0 release.</description></item><item><title>Changes Announced on July 17, 2023</title><link>https://protobuf.dev/news/2023-07-17/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-07-17/</guid><description>Dropping Bazel 5.x Support As per our official support policy, we will be dropping support for Bazel 5.x and lower. This means the minimum supported Bazel version is 6.2.x.</description></item><item><title>Changes announced July 6, 2022</title><link>https://protobuf.dev/news/2022-07-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2022-07-06/</guid><description>Library Breaking Change Policy Google released its OSS Library Breaking Change Policy, which some Google-sponsored open source projects have opted into. Protocol buffers has adopted this policy.</description></item><item><title>Changes Announced on July 6, 2023</title><link>https://protobuf.dev/news/2023-07-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-07-06/</guid><description>Dropping PHP 7.x Support As per our official PHP support policy, we will be dropping support for PHP 7.4 and lower. This means the minimum supported PHP version is 8.0.
If you are running an older version of PHP, you can install a previous release of the protobuf PHP extension by running pecl install protobuf-3.23.3.
Dropping Ruby 2.6 Support As per our official Ruby support policy, we will be dropping support for Ruby 2.</description></item><item><title>Changes Announced on June 16, 2026</title><link>https://protobuf.dev/news/2026-06-16/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2026-06-16/</guid><description>Dropping C# NuGet package author signing We will be dropping C# author signing for our NuGet packages (Google.Protobuf and Google.Protobuf.Tools) in future releases.
Previously, we used a Google-owned certificate to author-sign NuGet packages. NuGet packages will no longer contain a Google author signature. They will continue to be repository-signed by nuget.org upon upload.
This change aligns with similar signing changes being made to the gRPC NuGet packages.</description></item><item><title>Changes Announced on June 26, 2024</title><link>https://protobuf.dev/news/2024-06-26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-06-26/</guid><description>Dropping Support for Building Protobuf Java from Source with Maven We are planning to drop support for building Protobuf Java OSS from source with the Maven build system in the Protobuf Java 4.28 release. This has been marked deprecated in the 4.27 release.
After this point, you can continue to use Bazel, or another build system, to build Protobuf. You can read more about building from source in the Protobuf Java README.</description></item><item><title>Changes Announced on June 27, 2025</title><link>https://protobuf.dev/news/2025-06-27/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2025-06-27/</guid><description>Edition 2024 We are planning to release Protobuf Edition 2024 in 32.x in Q3 2025.
These describe changes as we anticipate them being implemented, but due to the flexible nature of software some of these changes may not land or may vary from how they are described in this topic.
More documentation on Edition 2024 will be published in Feature Settings for Editions, including information on migrating from Edition 2023.</description></item><item><title>Changes Announced on June 29, 2023</title><link>https://protobuf.dev/news/2023-06-29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-06-29/</guid><description>TL;DR: We are planning to release Protobuf Editions to the open source project in the second half of 2023. While there is no requirement to move from proto2/proto3 syntax to Editions syntax at initial release, we encourage you to plan a move in your software project&amp;rsquo;s future timeline.
Protobuf Editions Protobuf Editions replace the proto2 and proto3 designations that we have used for Protocol Buffers. Instead of adding syntax = &amp;quot;proto2&amp;quot; or syntax = &amp;quot;proto3&amp;quot; at the top of proto definition files, you use an edition number, such as edition = &amp;quot;2024&amp;quot;, to specify the default behaviors your file will have.</description></item><item><title>Changes Announced on March 13, 2026</title><link>https://protobuf.dev/news/2026-03-13/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2026-03-13/</guid><description>Changes in Bazel Migration of Proto Flags to Starlark --proto_toolchain_for* and --proto_compiler are no longer read by Proto rules. These toolchain-related flags are deprecated and will be removed in the future. Switching to the equivalent Starlark versions of the flags is a short-term fix:
--@protobuf//bazel/flags/cc:proto_toolchain_for_cc --@protobuf//bazel/flags/java:proto_toolchain_for_java --@protobuf//bazel/flags/java:proto_toolchain_for_javalite --@protobuf//bazel/flags:proto_compiler The longer-term fix is to enable --incompatible_enable_proto_toolchain_resolution (which is the default in Bazel 9 anyway) and to register toolchains using the normal platforms-related mechanisms (register_toolchain() in MODULE.</description></item><item><title>Changes Announced on March 18, 2025</title><link>https://protobuf.dev/news/2025-03-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2025-03-18/</guid><description>Dropping Ruby 3.0 Support As per our official Ruby support policy, we will be dropping support for Ruby 3.0 and lower in Protobuf version 31, due to release in April, 2025. The minimum supported Ruby version will be 3.1.</description></item><item><title>Changes Announced on May 18, 2026</title><link>https://protobuf.dev/news/2026-05-18/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2026-05-18/</guid><description>Dropping support for older versions of .NET As per our official .NET support policy, we will be enforcing the lack of support for .NET 7.0 and lower in the 36.x release.
The minimum supported .NET version has officially been 8.0 since November 2024 per Foundational .NET Support. 36.x will align our C# project files to match our official support.</description></item><item><title>Changes announced May 6, 2022</title><link>https://protobuf.dev/news/2022-05-06/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2022-05-06/</guid><description>Versioning We changed our versioning scheme to enable more-nimble updates to language-specific parts of Protocol Buffers. In the new scheme, each language has its own major version that can be incremented independently of other languages, as covered later in this topic with the Python release. The minor and patch versions, however, will remain coupled. This allows us to introduce breaking changes into some languages without requiring a bump of the major version in languages that do not experience a breaking change.</description></item><item><title>Changes Announced on November 7, 2024</title><link>https://protobuf.dev/news/2024-11-07/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-11-07/</guid><description>The following sections cover planned breaking changes in the v30 release, expected in 2025 Q1. Also included are some changes that aren&amp;rsquo;t breaking but may require action on your part. These are in addition to those mentioned in the News article from October 2.
These describe changes as we anticipate them being implemented, but due to the flexible nature of software some of these changes may not land or may vary from how they are described in this topic.</description></item><item><title>Changes Announced on October 1, 2024</title><link>https://protobuf.dev/news/2024-10-01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-10-01/</guid><description>Bazel and Proto Rules There are upcoming changes to the way that Bazel will work for protobuf builds. These changes require awareness in the first stage, and action by project owners before the second stage.
Stage 1 With the release of Bazel 8, proto rules (proto_library, cc_proto_library, java_proto_library, java_lite_proto_library, and py_proto_library) will be removed from the Bazel project. The will be added to the Protocol Buffers project in v29. Bazel will be updated to automatically use the rules from the protobuf project, so the change is initially a no-op for project owners.</description></item><item><title>Changes announced on October 10, 2023</title><link>https://protobuf.dev/news/2023-10-10/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-10-10/</guid><description>Protobuf Editions Features Documentation that introduces Protobuf Editions features is now available.</description></item><item><title>Changes Announced on October 2, 2024</title><link>https://protobuf.dev/news/2024-10-02/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2024-10-02/</guid><description>The following sections cover planned breaking changes in the v30 release, expected in 2025 Q1. These describe changes as we anticipate them being implemented, but due to the flexible nature of software some of these changes may not land or may vary from how they are described in this topic.
Changes in C++ C++ will bump its major version from 5.29.x to 6.30.x.
Descriptor APIs v30 will update return types in descriptor (such as full_name) to be absl::string_view.</description></item><item><title>Changes announced on September 15, 2023</title><link>https://protobuf.dev/news/2023-09-15/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2023-09-15/</guid><description>μpb Moving to the Protobuf Git Repository Starting with the v25 release, μpb now lives in the protobuf repo instead of in its former location in a separate repo. All μpb development going forward will take place only in the new location.
The merger of the two repos will simplify and speed up our development process by removing the need to update pinned version dependencies between protobuf and μpb. Changes to μpb now take effect immediately in protobuf code and vice versa, without the need for a manual upgrade step.</description></item><item><title>Changes Announced on September 19, 2025</title><link>https://protobuf.dev/news/2025-09-19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/2025-09-19/</guid><description>The following sections cover planned breaking changes in the v34 release, expected in 2026 Q1. These describe changes as we anticipate them being implemented, but due to the flexible nature of software some of these changes may not land or may vary from how they are described in this topic.
Changes in C++ C++ will bump its major version to 7 with the 7.34.0 release. 6.33 will be the final minor version release on 6.</description></item><item><title>News Announcements for Version 21.x</title><link>https://protobuf.dev/news/v21/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v21/</guid><description>The following announcements are specific to Version 21.x, which was released May 25, 2022. For information presented chronologically, see News.
Python Updates We made some changes in Python language support in Protocol Buffers. Version 4.21.0 is a new major version, following 3.20.1. The new version is based on the upb library, and offers significantly better parsing performance than previous releases, especially for large payloads. It also includes prebuilt binary modules for Apple silicon for increased performance without a manual build.</description></item><item><title>News Announcements for Version 22.x</title><link>https://protobuf.dev/news/v22/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v22/</guid><description>The following announcements are specific to Version 22.x, which was released February 16, 2023. For information presented chronologically, see News.
Changing Maven Release Candidate Artifact Names to Be More Idiomatic In 22.0 we plan to rename Maven artifacts to use “RC” instead of “rc-” as the release candidate prefix.
Adding an Abseil Dependency In order to reduce the Google vs. OSS differences between protobuf and to simplify our own project, we plan to take a formal dependency on Abseil.</description></item><item><title>News Announcements for Version 23.x</title><link>https://protobuf.dev/news/v23/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v23/</guid><description>The following announcements are specific to Version 23.x, which was released May 8, 2023. For information presented chronologically, see News.
Changes to Ruby Generator This GitHub PR, which will appear in the 23.x release, changes the Ruby code generator to emit a serialized proto instead of the DSL.
It removes the DSL from the code generator in anticipation of splitting the DSL out into a separate package.
Given a .proto file like:</description></item><item><title>News Announcements for Version 24.x</title><link>https://protobuf.dev/news/v24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v24/</guid><description>The following announcements are specific to Version 24.x, which was released August 8, 2023. For information presented chronologically, see News.
Stricter validation for json_name v24 will forbid embedded null characters in the json_name field option. Going forward, any valid Unicode characters will be accepted, except \u0000. Null will still be allowed in field values.
Previously, the proto compiler allowed null characters, but support for this was inconsistent across languages and implementations.</description></item><item><title>News Announcements for Version 25.x</title><link>https://protobuf.dev/news/v25/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v25/</guid><description>The following announcements are specific to Version 25.x, which was released November 1, 2023. For information presented chronologically, see News.
Python Breaking Change In v25 message.UnknownFields() will be deprecated in pure Python and C++ extensions. It will be removed in v26. Use the new UnknownFieldSet(message) support in unknown_fields.py as a replacement.
μpb Moving to the Protobuf Git Repository Starting with the v25 release, μpb now lives in the protobuf repo instead of in its former location in a separate repo.</description></item><item><title>News Announcements for Version 26.x</title><link>https://protobuf.dev/news/v26/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v26/</guid><description>The following announcements are specific to Version 26.x, which was released March 13, 2024. For information presented chronologically, see News.
General Changes JSON Formatter Option Changes Starting in the 26.x line, the JSON formatter option to print default-valued fields is replaced with a fixed way to handle proto2 and proto3 optional fields consistently.
Java: includingDefaultValueFields() is replaced with alwaysPrintFieldsWithNoPresence(). C++: always_print_default_values is replaced with always_print_fields_with_no_presence=True. Py: including_default_value_fields=True is replaced with always_print_fields_with_no_presence=True.</description></item><item><title>News Announcements for Version 29.x</title><link>https://protobuf.dev/news/v29/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v29/</guid><description>The following announcements are specific to Version 29.x, which was released November 27, 2024. For information presented chronologically, see News.
Bazel and Proto Rules There are upcoming changes to the way that Bazel will work for protobuf builds. These changes require awareness in the first stage, and action by project owners before the second stage.
Stage 1 With the release of Bazel 8, proto rules (proto_library, cc_proto_library, java_proto_library, java_lite_proto_library, and py_proto_library) will be removed from the Bazel project.</description></item><item><title>News Announcements for Version 30.x</title><link>https://protobuf.dev/news/v30/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v30/</guid><description>The following announcements are specific to Version 30.x, which was released March 4, 2025. For information presented chronologically, see News.
The following sections cover planned breaking changes in the v30 release, expected in 2025 Q1. Also included are some changes that aren&amp;rsquo;t breaking but may require action on your part. These describe changes as we anticipate them being implemented, but due to the flexible nature of software some of these changes may not land or may vary from how they are described in this topic.</description></item><item><title>News Announcements for Version 31.x</title><link>https://protobuf.dev/news/v31/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v31/</guid><description>The following announcements are specific to Version 31.x, which was released May 14, 2025. For information presented chronologically, see News.
The following sections cover planned breaking changes in the v31 release, expected in 2025 Q2. Also included are some changes that aren&amp;rsquo;t breaking but may require action on your part. These describe changes as we anticipate them being implemented, but due to the flexible nature of software some of these changes may not land or may vary from how they are described in this topic.</description></item><item><title>News Announcements for Version 32.x</title><link>https://protobuf.dev/news/v32/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v32/</guid><description>Changes to Existing Features This section details any existing features whose default settings will change in Edition 2024.
C++ string_type The default for string_type feature, originally released in Edition 2023, will change from STRING to VIEW in Edition 2024.
See features.(pb.cpp).string_type and String View APIs for more information on this feature and its feature values.
New Features This section details any new features that will be introduced in Edition 2024.</description></item><item><title>News Announcements for Version 34.x</title><link>https://protobuf.dev/news/v34/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://protobuf.dev/news/v34/</guid><description>The following news topics provide information about changes in the 34.x release.
March 13, 2026 - Breaking changes in Bazel for the upcoming 34.x release January 16, 2026 - Prebuilt proto compiler (protoc) for Bazel September 19, 2025 - Breaking changes in the upcoming 34.x release July 16, 2025 - Resuming support for Bazel with MSVC</description></item></channel></rss>