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.25.x runtime was first released in 2023 Q4.

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

C++ will target making major version bumps annually in Q1 of each year.

protocC++22Q222Q322Q423Q123Q223Q323Q424Q124Q2
21.x3.21.xIRPSPSPSPSPSPSSE
22.x4.22.xIR
23.x4.23.xIR
24.x4.24.xIR
25.x4.25.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.
26.x5.26.xIR
27.x5.27.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.25.x runtime was first released in 2023 Q4.

protocC#23Q123Q223Q323Q424Q124Q2
22.x3.22.xIR
23.x3.23.xIR
24.x3.24.xIR
25.x3.25.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.
26.xIR
27.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

Java will target making major version bumps annually in Q1 of each year.

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

Objective-C

The Objective-C 3.25.x runtime was first released in 2023 Q4.

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

PHP

The PHP 3.25.x runtime was first released in 2023 Q4.

protocPHP23Q123Q223Q323Q424Q124Q2
22.x3.22.xIR
23.x3.23.xIR
24.x3.24.xIR
25.x3.25.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.
26.xIR
27.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.25.x runtime was first released in 2023 Q4.

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

protocPython22Q322Q423Q123Q223Q323Q424Q124Q2
20.x3.20.xPSPSPSSE
21.x4.21.xPSPS
22.x4.22.xIR
23.x4.23.xIR
24.x4.24.xIR
25.x4.25.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.
26.xIR
27.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.25.x runtime was first released in 2023 Q4.

protocRuby22Q222Q322Q423Q123Q223Q323Q424Q124Q2
21.x3.21.xIRPSPS
22.x3.22.xIR
23.x3.23.xIR
24.x3.24.xIR
25.x3.25.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.
26.xIR
27.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.