2023 年 4 月 11 日宣布的變更
Protocol Buffers 於 2023 年 4 月 11 日宣布的變更。
語法反射棄用
v23 將棄用使用反射檢查語法版本的功能。此棄用將以建構時的警告形式呈現。此功能將在未來版本中移除。
在 C++ 中新增 ctype=CORD 的支援
v23 將為單數 bytes
欄位 (包括 oneof
欄位) 新增 ctype=CORD
支援,以指定資料應使用 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++ 支援 中的版本中。