happytails.ai
繁體中文

Protobuf 相容性檢查器

比較 .proto 檔案的兩個版本,找出會破壞已依 wire 格式或 JSON 格式寫入之訊息的編輯。刪除編號、型別變更、欄位重新命名和列舉變更都會逐項說明。

每個 .proto 檔案最多 1,000,000 個字元,最多 200,000 個權杖、2,000 則訊息和列舉、每則訊息 10,000 個欄位,以及 32 層巢狀訊息。比較在瀏覽器背景工作執行緒中執行。可下載 JSON 報告和發現項目 CSV 清單。 現有資料寫入時所用的版本。請將變更後的檔案放入 New schema。 最多 1,000,000 個字元。 執行前請檢查設定。

處理結果

回報問題或分享想法。

Protobuf 相容性檢查器
  1. 在主要輸入欄中貼上舊版 .proto 檔案。
  2. 將新版本貼到 New schema 欄位。
  3. 執行檢查並依嚴重程度由高至低檢閱發現項目。
  4. 下載 JSON 報告或 CSV 清單。

使用須知

每個 .proto 檔案最多 1,000,000 個字元,最多 200,000 個權杖、2,000 則訊息和列舉、每則訊息 10,000 個欄位,以及 32 層巢狀訊息。比較在瀏覽器背景工作執行緒中執行。可下載 JSON 報告和發現項目 CSV 清單。

嚴重程度

破壞性變更表示新舊程式可能會誤讀二進位訊息:例如刪除欄位但未保留其編號、重新使用保留範圍內的編號、改變 wire 編碼的型別、在單一值與重複值之間切換、刪除訊息或列舉,或更改列舉值編號。破壞性 JSON 變更表示二進位資料仍可用,但 JSON 或文字格式已改變,例如欄位或列舉值重新命名。警告涉及 wire 層仍可用、但可能截斷或重新解讀值的變更,例如 int32 改為 int64,或欄位移入、移出 oneof。

比較方式

依照 protobuf 語言指南中的訊息型別更新規則,訊息和列舉按不含 package 的名稱比對,欄位按編號比對。也會比較巢狀於其他訊息中的訊息和列舉。

不支援的內容

剖析器可讀取 proto2 和 proto3 檔案中的訊息、列舉、oneof、maps、巢狀型別、保留編號和名稱,以及欄位選項。Imports 會列出但不會解析,因此其他檔案中的型別只依名稱比對。Editions、groups 和 extensions 會遭拒。Services 會略過。

接下來可以做什麼