バージョン サポート

言語実装に提供されるサポート期間のリスト。

protoc およびさまざまな言語のサポート期間は、このトピックの後半の表で説明されています。このトピック全体で使用されているバージョン番号は SemVer 規則に従っています。バージョン「3.21.7」では、「3」がメジャーバージョン、「21」がマイナーバージョン、「7」がマイクロまたはパッチ番号です。

v21.x protoc リリースから、Protocol Buffers の言語固有の部分へのより機敏な更新を可能にするために、バージョン管理スキームを変更しました。新しいスキームでは、各言語が独自のメジャーバージョンを持ち、他の言語とは独立して増分できます。ただし、マイナーバージョンとパッチバージョンは結合されたままです。これにより、破壊的変更が発生しない言語でメジャーバージョンを上げる必要なく、一部の言語に破壊的変更を導入できます。たとえば、単一のリリースには、protoc バージョン 24.0、Java ランタイムバージョン 4.24.0、C# ランタイムバージョン 3.24.0 が含まれる場合があります。

このバージョン管理スキームの導入前は、すべての言語のメジャーバージョンは 3 でした。この新しいバージョン管理スキームの最初の例は、Python API の 4.21.0 バージョンで、以前のバージョン 3.20.1 に続くものでした。同時にリリースされた他の言語 API は 3.21.0 としてリリースされました。

リリースサイクル

Protobuf は四半期ごとに更新をリリースするよう努めています。新しい API を必要とするセキュリティ修正などの緊急の必要性がある場合は、リリースを追加する可能性があります。リリースをスキップすることは非常に稀なイベントであるべきです。

メジャー (破壊的) リリースは、Q1 リリースを対象とします。緊急の必要性がある場合は、いつでもメジャーな破壊的変更を導入する可能性がありますが、これは非常に稀であるべきです。

当社のサポート期間は、ライブラリの破壊的変更ポリシーによって定義されています。

Protobuf は、文書化されている言語、ツール、プラットフォーム、およびライブラリのサポートポリシーの実施を、破壊的変更とは見なしません。たとえば、リリースでは、メジャーバージョンを上げることなく、EOL 言語バージョンのサポートを終了する場合があります。

リリースにおける変更点

バイナリワイヤフォーマットは変更されません。メジャーバージョンアップグレードでも変更されません。Protocol Buffers の新しいバージョンから古いバイナリワイヤフォーマットのプロトデータを引き続き読み取ることができます。新しく生成された Protobuf バインディングがバイナリワイヤフォーマットにシリアル化された場合、古いバイナリでもパース可能です。これは Protocol Buffers の基本的な設計原則です。JSON および textproto フォーマットは、同じ安定性保証を提供しないことに注意してください。

descriptor.proto スキーマは変更される可能性があります。 マイナーリリースまたはパッチリリースでは、新しいメッセージ、フィールド、列挙型、列挙値、エディション、エディション機能などを追加する場合があります。また、既存の要素を非推奨とマークする場合があります。メジャーリリースでは、非推奨のオプション、列挙型、列挙値、メッセージ、フィールドなどを削除する場合があります。

.proto 言語の文法は変更される可能性があります。 マイナーリリースまたはパッチリリースでは、新しい言語構造や既存機能の代替構文を追加する場合があります。また、特定の機能を非推奨とマークする場合があります。これにより、以前は `protoc` によって出力されなかった新しい警告が発生する可能性があります。メジャーリリースでは、クライアントコードの更新を必要とする形で、廃止された機能、構文、エディションのサポートを削除する場合があります。

Gencode とランタイム API は変更される可能性があります。 マイナーリリースまたはパッチリリースでは、変更は新機能のための純粋な追加またはソース互換の更新のいずれかになります。コードを再コンパイルするだけで機能するはずです。メジャーリリースでは、Gencode またはランタイム API が互換性のない方法で変更され、呼び出し元のサイトの変更が必要になる場合があります。これらの変更は最小限に抑えるよう努めています。未定義の動作を修正したり、その他の方法で影響を与えたりする変更は破壊的とは見なされず、メジャーリリースを必要としません。

オペレーティングシステム、プログラミング言語、およびツールのバージョンサポートは変更される可能性があります。 マイナーリリースまたはパッチリリースでは、特定のオペレーティングシステム、プログラミング言語、またはツールの特定のバージョンのサポートを追加または削除する場合があります。サポートされている言語については、基盤となるサポートマトリックスを参照してください。

一般に

  • マイナーリリースまたはパッチリリースには、クロスバージョンランタイム保証に従って、純粋な追加またはソース互換の更新のみが含まれるべきです。
  • メジャーリリースでは、機能、または API が削除される、または呼び出し元のサイトの更新が必要な方法で変更される場合があります。

サポート期間

最新リリースは常にサポートされます。以前のマイナーバージョンのサポートは、同じメジャーバージョンの新しいマイナーバージョンがリリースされたときに終了します。以前のメジャーバージョンのサポートは、破壊的リリースが導入された四半期から4四半期後に終了します。たとえば、Protobuf Python 5.26.0 が2024年のQ1にリリースされたとき、Protobuf Python 4.25.x のサポート終了は2025年のQ1末に設定されました。

以下のセクションでは、各言語のサポートに関するガイドを提供します。

C++

C++ は、毎年 Q1 にメジャーバージョンアップを目指します。

protoc のバージョンは、Protobuf C++ のマイナーバージョン番号から推測できます。例: Protobuf C++ バージョン 4.25.x は protoc バージョン 25.x を使用します。

将来の計画は斜体で示されており、変更される可能性があります。

リリースサポート期間

Protobuf C++リリース日サポート終了
3.x2022年5月25日2024年3月31日
4.x2023年2月16日2025年3月31日
5.x2024年3月13日2026年3月31日
6.x2025年3月4日2027年3月31日
7.x2026年Q12028年3月31日

リリースサポートチャート

Protobuf C++protoc23Q123Q223Q323Q424Q124Q224Q324Q425Q125Q225Q325Q4
3.x21.x3.213.213.213.213.21
4.x22.x-25.x4.224.234.244.254.254.254.254.254.25
5.x26.x-29.x5.265.275.285.295.295.295.295.29
6.x30.x-33.x6.306.316.326.33

凡例

アクティブ新機能、互換性のある変更、バグ修正を含むマイナーリリースおよびパッチリリース。
メンテナンス重大なバグ修正を含むパッチリリース。
サポート終了リリースはサポートされていません。ユーザーはサポートされているリリースにアップグレードする必要があります。
今後予定されているリリース。計画目的で表示されます。

C++ ツール、プラットフォーム、ライブラリのサポート

Protobuf は、Foundational C++ Support Policyに記載されているツール、プラットフォーム、およびライブラリのサポートポリシーに従うことにコミットしています。サポートされている特定のバージョンについては、Foundational C++ Support Matrixを参照してください。

C#

protoc のバージョンは、Protobuf C# のマイナーバージョン番号から推測できます。例: Protobuf C# バージョン 3.25.x は protoc バージョン 25.x を使用します。

将来の計画は斜体で示されており、変更される可能性があります。

リリースサポート期間

Protobuf C#リリース日サポート終了
3.x2022年5月25日未定

リリースサポートチャート

Protobuf C#protoc23Q123Q223Q323Q424Q124Q224Q324Q425Q125Q225Q325Q4
3.x21.x-33.x3.223.233.243.253.263.273.283.293.303.313.323.33

凡例

アクティブ新機能、互換性のある変更、バグ修正を含むマイナーリリースおよびパッチリリース。
メンテナンス重大なバグ修正を含むパッチリリース。
サポート終了リリースはサポートされていません。ユーザーはサポートされているリリースにアップグレードする必要があります。
今後予定されているリリース。計画目的で表示されます。

C# プラットフォームとライブラリのサポート

Protobuf は、.NET Support Policy に記載されているプラットフォームおよびライブラリのサポートポリシーに従うことにコミットしています。サポートされている特定のバージョンについては、Foundational .NET Support Matrix を参照してください。

Java

Java は、毎年 Q1 にメジャーバージョンアップを目指します。

protoc のバージョンは、Protobuf Java のマイナーバージョン番号から推測できます。例: Protobuf Java バージョン 3.25.x は protoc バージョン 25.x を使用します。

将来の計画は斜体で示されており、変更される可能性があります。

リリースサポート期間

Protobuf Javaリリース日サポート終了
3.x2022年5月25日2027年3月31日*
4.x2024年3月13日2028年3月31日
5.x2027年Q1*2029年3月31日

リリースサポートチャート

Protobuf Javaprotoc23Q123Q223Q323Q424Q124Q224Q324Q425Q125Q225Q325Q4
3.x21.x-25.x3.223.233.243.253.253.253.253.253.253.253.253.25
4.x26.x-33.x4.264.274.284.294.304.314.324.33

凡例

アクティブ新機能、互換性のある変更、バグ修正を含むマイナーリリースおよびパッチリリース。
メンテナンス重大なバグ修正を含むパッチリリース。
サポート終了リリースはサポートされていません。ユーザーはサポートされているリリースにアップグレードする必要があります。
今後予定されているリリース。計画目的で表示されます。

Java プラットフォームとライブラリのサポート

Protobuf は、Java Support Policy に記載されているプラットフォームおよびライブラリのサポートポリシーに従うことにコミットしています。サポートされている特定のバージョンについては、Foundational Java Support Matrix を参照してください。

Android では、Protobuf は Google Play services でサポートされている最小 SDK バージョンと Jetpack のデフォルトバージョンをサポートします。両バージョンが異なる場合は、より低いバージョンがサポートされます。

Objective-C

protoc のバージョンは、Protobuf Objective-C のマイナーバージョン番号から推測できます。例: Protobuf Objective-C バージョン 3.25.x は protoc バージョン 25.x を使用します。

将来の計画は斜体で示されており、変更される可能性があります。

リリースサポート期間

Protobuf Objective-Cリリース日サポート終了
3.x2022年5月25日2026年3月31日
4.x2025年3月4日未定

リリースサポートチャート

Protobuf Objective-Cprotoc23Q123Q223Q323Q424Q124Q224Q324Q425Q125Q225Q325Q4
3.x21.x-29.x3.223.233.243.253.263.273.283.293.293.293.293.29
4.x30.x+4.304.314.324.33

凡例

アクティブ新機能、互換性のある変更、バグ修正を含むマイナーリリースおよびパッチリリース。
メンテナンス重大なバグ修正を含むパッチリリース。
サポート終了リリースはサポートされていません。ユーザーはサポートされているリリースにアップグレードする必要があります。
今後予定されているリリース。計画目的で表示されます。

PHP

protoc のバージョンは、Protobuf PHP のマイナーバージョン番号から推測できます。例: Protobuf PHP バージョン 3.25.x は protoc バージョン 25.x を使用します。

将来の計画は斜体で示されており、変更される可能性があります。

リリースサポート期間

Protobuf PHPリリース日サポート終了
3.x2022年5月25日2025年3月31日
4.x2024年3月13日未定

リリースサポートチャート

Protobuf PHPprotoc23Q123Q223Q323Q424Q124Q224Q324Q425Q125Q225Q325Q4
3.x21.x-25.x3.223.233.243.253.253.253.253.253.25
4.x26.x+4.264.274.284.294.304.314.324.33

凡例

アクティブ新機能、互換性のある変更、バグ修正を含むマイナーリリースおよびパッチリリース。
メンテナンス重大なバグ修正を含むパッチリリース。
サポート終了リリースはサポートされていません。ユーザーはサポートされているリリースにアップグレードする必要があります。
今後予定されているリリース。計画目的で表示されます。

PHP プラットフォームとライブラリのサポート

Protobuf は、PHP Support Policy に記載されているプラットフォームおよびライブラリのサポートポリシーに従うことにコミットしています。サポートされている特定のバージョンについては、Foundational PHP Support Matrix を参照してください。

Python

protoc のバージョンは、Protobuf Python のマイナーバージョン番号から推測できます。例: Protobuf Python バージョン 4.25.x は protoc バージョン 25.x を使用します。

将来の計画は斜体で示されており、変更される可能性があります。

リリースサポート期間

Protobuf Pythonリリース日サポート終了
4.x2022年5月25日2025年3月31日
5.x2024年3月13日2026年3月31日
6.x2025年3月4日未定

リリースサポートチャート

Protobuf Pythonprotoc23Q123Q223Q323Q424Q124Q224Q324Q425Q125Q225Q325Q4
4.x21.x-25.x4.224.234.244.254.254.254.254.254.25
5.x26.x-29.x5.265.275.285.295.295.295.295.29
6.x30.x+6.306.316.326.33

凡例

アクティブ新機能、互換性のある変更、バグ修正を含むマイナーリリースおよびパッチリリース。
メンテナンス重大なバグ修正を含むパッチリリース。
サポート終了リリースはサポートされていません。ユーザーはサポートされているリリースにアップグレードする必要があります。
今後予定されているリリース。計画目的で表示されます。

Python プラットフォームとライブラリのサポート

Protobuf は、Python Support Policy に記載されているプラットフォームおよびライブラリのサポートポリシーに従うことにコミットしています。サポートされている特定のバージョンについては、Foundational Python Support Matrix を参照してください。

Ruby

protoc のバージョンは、Protobuf Ruby のマイナーバージョン番号から推測できます。例: Protobuf Ruby バージョン 3.25.x は protoc バージョン 25.x を使用します。

将来の計画は斜体で示されており、変更される可能性があります。

リリースサポート期間

Protobuf Rubyリリース日サポート終了
3.x2022年5月25日2025年3月31日
4.x2024年3月13日未定

リリースサポートチャート

Protobuf Rubyprotoc23Q123Q223Q323Q424Q124Q224Q324Q425Q125Q225Q325Q4
3.x21.x-25.x3.223.233.243.253.253.253.253.253.25
4.x26.x+4.264.274.284.294.304.314.324.33

凡例

アクティブ新機能、互換性のある変更、バグ修正を含むマイナーリリースおよびパッチリリース。
メンテナンス重大なバグ修正を含むパッチリリース。
サポート終了リリースはサポートされていません。ユーザーはサポートされているリリースにアップグレードする必要があります。
今後予定されているリリース。計画目的で表示されます。

Ruby プラットフォームとライブラリのサポート

Protobuf は、Ruby Support Policy に記載されているプラットフォームおよびライブラリのサポートポリシーに従うことにコミットしています。サポートされている特定のバージョンについては、Foundational Ruby Support Matrix を参照してください。

JRuby は公式にはサポートされていませんが、ベストエフォートで、最小 Ruby バージョン以上との互換性をターゲットとする最新の JRuby バージョンに対する非公式サポートを提供しています。