Version Support
Support windows for protoc and the various languages are covered in the tables later in this topic. Version numbers throughout this topic use SemVer conventions; in the version “3.21.7,” we say that “3” is the major version, “21” is the minor version, and “7” is the micro or patch number.
Starting with the v20.x protoc release, we changed our versioning scheme to enable nimbler 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. The minor and patch versions, however, 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. For example, a single release might include protoc version 24.0, Java runtime version 4.24.0 and C# runtime version 3.24.0.
The first instance of this new versioning scheme was the 4.21.0 version of the Python API, which followed the preceding version, 3.20.1. Other language APIs released at the same time were released as 3.21.0.
Release Cadence
Protobuf does not officially have a release cadence; however, we strive to release updates quarterly, on a best-effort basis. Our support windows are defined by our library breaking change policy.
Support Duration
The most recent release is always supported. Support for earlier minor versions ends when a new minor version under the same major version is released. Support for earlier major verions ends four quarters beyond the quarter that the breaking release is introduced. For example, when Python 4.21.0 was released in May of 2022, that set the end of public support of Python 3.20.1 at the end of 2023 Q2.
The following sections provide a visual guide to the support for each language.
C++
The C++ 3.21.x runtime was first released in 2022 Q2 and has support until 2024 Q1. The C++ 4.23.x runtime was first released in 2023 Q2.
protoc | C++ | 22Q1 | 22Q2 | 22Q3 | 22Q4 | 23Q1 | 23Q2 | 23Q3 | 23Q4 | 24Q1 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|
20.x | 3.20.x | IR | ||||||||||
21.x | 3.21.x | IR | PS | PS | PS | PS | PS | PS | SE | |||
22.x | 4.22.x | IR | ||||||||||
23.x | 4.23.x | IR | PS | PS | PS | |||||||
The cells below are projections of future releases, but are not guarantees that those releases will happen, or that they will happen on that schedule. | ||||||||||||
24.x | IR | |||||||||||
25.x | IR |
Legend |
Initial release (IR) |
Public support (PS) |
Support ends (SE) |
C++ Tooling, Platform, and Library Support
Protobuf is committed to following the tooling, platform, and library support policy described in Foundational C++ Support Policy. For specific versions supported, see Foundational C++ Support.
C#
The C# 3.23.x runtime was first released in 2023 Q2.
protoc | C# | 22Q1 | 22Q2 | 22Q3 | 22Q4 | 23Q1 | 23Q2 | 23Q3 | 23Q4 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
20.x | 3.20.x | IR | |||||||||
21.x | 3.21.x | IR | PS | PS | |||||||
22.x | 3.22.x | IR | |||||||||
23.x | 4.23.x | IR | PS | PS | |||||||
The cells below are projections of future releases, but are not guarantees that those releases will happen, or that they will happen on that schedule. | |||||||||||
24.x | IR | ||||||||||
25.x | IR |
Legend |
Initial release (IR) |
Public support (PS) |
Support ends (SE) |
Java
The Java 3.23.x runtime was first released in 2023 Q2.
protoc | Java | 22Q1 | 22Q2 | 22Q3 | 22Q4 | 23Q1 | 23Q2 | 23Q3 | 23Q4 | 24Q1 | 24Q2 | 24Q3 | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
19.x | 3.19.x | |||||||||||||||
20.x | 3.20.x | IR | ||||||||||||||
21.x | 3.21.x | IR | PS | PS | ||||||||||||
22.x | 3.22.x | IR | ||||||||||||||
23.x | 3.23.x | IR | PS | PS | PS | PS | PS | |||||||||
The cells below are projections of future releases, but are not guarantees that those releases will happen, or that they will happen on that schedule. | ||||||||||||||||
24.x | IR | |||||||||||||||
25.x | IR |
Legend |
Initial release (IR) |
Public support (PS) |
Support ends (SE) |
Objective-C
The Objective-C 3.23.x runtime was first released in 2023 Q2.
protoc | ObjC | 22Q1 | 22Q2 | 22Q3 | 22Q4 | 23Q1 | 23Q2 | 23Q3 | 23Q4 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
20.x | 3.20.x | IR | |||||||||
21.x | 3.21.x | IR | PS | PS | |||||||
22.x | 3.22.x | IR | |||||||||
23.x | 3.23.x | IR | PS | PS | |||||||
The cells below are projections of future releases, but are not guarantees that those releases will happen, or that they will happen on that schedule. | |||||||||||
24.x | IR | ||||||||||
24.x | IR |
Legend |
Initial release (IR) |
Public support (PS) |
Support ends (SE) |
PHP
The PHP 3.23.x runtime was first released in 2023 Q2.
protoc | PHP | 22Q1 | 22Q2 | 22Q3 | 22Q4 | 23Q1 | 23Q2 | 23Q3 | 23Q4 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
20.x | 3.20.x | IR | |||||||||
21.x | 3.21.x | IR | PS | PS | |||||||
22.x | 3.22.x | IR | |||||||||
23.x | 3.23.x | IR | PS | PS | |||||||
The cells below are projections of future releases, but are not guarantees that those releases will happen, or that they will happen on that schedule. | |||||||||||
24.x | IR | ||||||||||
25.x | IR |
Legend |
Initial release (IR) |
Public support (PS) |
Support ends (SE) |
Python
The Python 3.20.x runtime was first released in 2022 Q1 and has support until 2023 Q2. The Python 4.23.x runtime was first released in 2023 Q2.
protoc | Python | 22Q1 | 22Q2 | 22Q3 | 22Q4 | 23Q1 | 23Q2 | 23Q3 | 23Q4 | ||
---|---|---|---|---|---|---|---|---|---|---|---|
20.x | 3.20.x | IR | PS | PS | PS | PS | SE | ||||
21.x | 4.21.x | IR | PS | PS | |||||||
22.x | 4.22.x | IR | |||||||||
23.x | 4.23.x | IR | PS | PS | |||||||
The cells below are projections of future releases, but are not guarantees that those releases will happen, or that they will happen on that schedule. | |||||||||||
24.x | IR | ||||||||||
25.x | IR |
Legend |
Initial release (IR) |
Public support (PS) |
Support ends (SE) |
Ruby
The Ruby 3.23.x runtime was first released in 2023 Q2.
protoc | Ruby | 22Q1 | 22Q2 | 22Q3 | 22Q4 | 23Q1 | 23Q2 | 23Q3 | 23Q4 | 23Q5 |
---|---|---|---|---|---|---|---|---|---|---|
20.x | 3.20.x | IR | ||||||||
21.x | 3.21.x | IR | PS | PS | ||||||
22.x | 3.22.x | IR | PS | PS | ||||||
23.x | 3.23.x | IR | PS | PS | ||||||
The cells below are projections of future releases, but are not guarantees that those releases will happen, or that they will happen on that schedule. | ||||||||||
24.x | IR | |||||||||
25.x | IR |
Legend |
Initial release (IR) |
Public support (PS) |
Support ends (SE) |