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 versions 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++ 4.24.x runtime was first released in 2023 Q3.

The C++ 3.21.x runtime was first released in 2022 Q2 and has support until 2024 Q1.

protocC++22Q222Q322Q423Q123Q223Q323Q424Q124Q2
21.x3.21.xIRPSPSPSPSPSPSSE
22.x4.22.xIR
23.x4.23.xIR
24.x4.24.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.
25.xIR
26.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 Matrix.

C#

The C# 3.24.x runtime was first released in 2023 Q3.

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

C# Platform and Library Support

Protobuf is committed to following the platform and library support policy described in .NET Support Policy.

Java

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

Objective-C

The Objective-C 3.24.x runtime was first released in 2023 Q3.

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

PHP

The PHP 3.24.x runtime was first released in 2023 Q3.

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

PHP Platform and Library Support

Protobuf is committed to following the platform and library support policy described in PHP Support Policy. For specific versions supported, see Foundational PHP Support Matrix.

Python

The Python 4.24.x runtime was first released in 2023 Q3.

The Python 3.x runtime went out of support on July 1, 2023.

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

Python Platform and Library Support

Protobuf is committed to following the platform and library support policy described in Python Support Policy. For specific versions supported, see Foundational Python Support Matrix.

Ruby

The Ruby 3.24.x runtime was first released in 2023 Q3.

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

Ruby Platform and Library Support

Protobuf is committed to following the platform and library support policy described in Ruby Support Policy. For specific versions supported, see Foundational Ruby Support Matrix.