2023 年 4 月 11 日發布的變更
於 2023 年 4 月 11 日針對 Protocol Buffers 發布的變更。
語法反射棄用
v23 將棄用使用反射檢查語法版本的功能。棄用將在建置時包含為警告。此功能將在未來版本中移除。
在 C++ 中新增對 ctype=CORD 的支援
v23 將新增對單數 bytes
欄位的 ctype=CORD
支援,包含 oneof
欄位,以指定應使用 absl::cord
而非 string
來儲存資料。如果開源社群有足夠的興趣,未來版本可能會新增對單數 string
欄位類型以及 repeated
string
和 byte
欄位的支援。
ctype=CORD
對擴充功能沒有影響。
您將能夠使用欄位選項新增支援
optional bytes foo = 25 [ctype=CORD];
選項保留
選項現在具有 保留 的概念,它控制選項是否保留在產生的程式碼中。選項預設一直具有執行階段保留,這表示它們保留在產生的程式碼中,因此在產生的描述子池中在執行階段可見。不過,您現在可以設定 retention = RETENTION_SOURCE
,以指定選項(或選項內的欄位)不得在執行階段保留。這稱為來源保留。
設定保留看起來像這樣
extend google.protobuf.FileOptions {
optional int32 source_retention_option = 1234
[retention = RETENTION_SOURCE];
}
它也可以在純欄位上設定,在這種情況下,只有當該欄位出現在選項中時才會生效
message OptionsMessage {
optional int32 source_retention_field = 1 [retention = RETENTION_SOURCE];
}
如需更多資訊,請參閱選項保留。
停止支援 Bazel <5.3
v23 將停止支援 Bazel 4。Protobuf 將繼續支援 Bazel 5 LTS,並將 Bazel 5.3 作為最低要求版本。這符合 基礎 C++ 支援政策中描述的建置支援政策,並反映在 基礎 C++ 支援中的版本中。