Version Support

A list of the support windows provided for language implementations.

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.

protocC++22Q122Q222Q322Q423Q123Q223Q323Q424Q1
20.x3.20.xIR
21.x3.21.xIRPSPSPSPSPSPSSE
22.x4.22.xIR
23.x4.23.xIRPSPSPS
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.xIR
25.xIR
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.

protocC#22Q122Q222Q322Q423Q123Q223Q323Q4
20.x3.20.xIR
21.x3.21.xIRPSPS
22.x3.22.xIR
23.x4.23.xIRPSPS
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.xIR
25.xIR
Legend
Initial release (IR)
Public support (PS)
Support ends (SE)

Java

The Java 3.23.x runtime was first released in 2023 Q2.

protocJava22Q122Q222Q322Q423Q123Q223Q323Q424Q124Q224Q3
19.x3.19.x
20.x3.20.xIR
21.x3.21.xIRPSPS
22.x3.22.xIR
23.x3.23.xIRPSPSPSPSPS
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.xIR
25.xIR
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.

protocObjC22Q122Q222Q322Q423Q123Q223Q323Q4
20.x3.20.xIR
21.x3.21.xIRPSPS
22.x3.22.xIR
23.x3.23.xIRPSPS
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.xIR
24.xIR
Legend
Initial release (IR)
Public support (PS)
Support ends (SE)

PHP

The PHP 3.23.x runtime was first released in 2023 Q2.

protocPHP22Q122Q222Q322Q423Q123Q223Q323Q4
20.x3.20.xIR
21.x3.21.xIRPSPS
22.x3.22.xIR
23.x3.23.xIRPSPS
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.xIR
25.xIR
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.

protocPython22Q122Q222Q322Q423Q123Q223Q323Q4
20.x3.20.xIRPSPSPSPSSE
21.x4.21.xIRPSPS
22.x4.22.xIR
23.x4.23.xIRPSPS
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.xIR
25.xIR
Legend
Initial release (IR)
Public support (PS)
Support ends (SE)

Ruby

The Ruby 3.23.x runtime was first released in 2023 Q2.

protocRuby22Q122Q222Q322Q423Q123Q223Q323Q423Q5
20.x3.20.xIR
21.x3.21.xIRPSPS
22.x3.22.xIRPSPS
23.x3.23.xIRPSPS
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.xIR
25.xIR
Legend
Initial release (IR)
Public support (PS)
Support ends (SE)