1

Protobuf的賣點之一是向後兼容性,即開發人員可以演進格式,並且老客戶端仍然可以使用它。Protobuf向後兼容性和proto3與proto2

現在有了一個名爲proto3的新Protobuf版本,IDL語言本身並不兼容,例如options,required其中丟棄了新的enuns語法,沒有擴展。

這是否意味着使用proto3無法生成舊的proto2會讀取/理解的二進制文件?

這就像你必須繼續使用proto2。如果你開始使用proto3,你不能與舊系統交談,或者必須重寫,重新編譯所有這些。首先,這是兼容性突破。

回答

2

是的,如果你的某些系統是基於proto2的,那麼最好繼續使用proto2。在我看來,proto3並沒有引入許多新功能,大多數圖書館將繼續支持proto2。

但是,線格式大多是兼容的。只要標籤號碼相同,編碼保持不變。必需/可選說明符不影響編碼,它們只是解碼後執行的檢查。