happytails.ai
Tiếng Việt

Công cụ kiểm tra khả năng tương thích protobuf

So sánh hai phiên bản của tệp .proto và tìm các chỉnh sửa làm hỏng message đã được ghi theo wire hoặc JSON. Mỗi thay đổi về số, kiểu, tên trường và enum đều được giải thích.

Nhận hai tệp .proto, mỗi tệp tối đa 1,000,000 ký tự, tối đa 200,000 token, 2,000 message và enum, 10,000 trường mỗi message và 32 cấp message lồng nhau. So sánh chạy trong worker nền của trình duyệt. Tệp tải xuống gồm báo cáo JSON và danh sách phát hiện CSV. Phiên bản đã dùng để ghi dữ liệu hiện có. Đặt tệp đã thay đổi vào New schema. Tối đa 1.000.000 ký tự. Kiểm tra cài đặt trước khi chạy.

Kết quả của bạn

Báo lỗi hoặc chia sẻ ý tưởng.

Công cụ kiểm tra khả năng tương thích protobuf
  1. Dán tệp .proto cũ vào ô chính.
  2. Dán phiên bản mới vào trường New schema.
  3. Chạy kiểm tra và xem các phát hiện theo mức độ nghiêm trọng từ cao xuống thấp.
  4. Tải báo cáo JSON hoặc danh sách CSV.

Điều cần biết

Nhận hai tệp .proto, mỗi tệp tối đa 1,000,000 ký tự, tối đa 200,000 token, 2,000 message và enum, 10,000 trường mỗi message và 32 cấp message lồng nhau. So sánh chạy trong worker nền của trình duyệt. Tệp tải xuống gồm báo cáo JSON và danh sách phát hiện CSV.

Mức độ nghiêm trọng

Thay đổi phá vỡ tương thích nghĩa là chương trình cũ và mới có thể đọc sai message nhị phân: chẳng hạn xóa trường mà không đánh dấu số là reserved, dùng lại số thuộc dải đã đánh dấu reserved, đổi sang kiểu có mã hóa wire khác, đổi giữa trường đơn và lặp lại, xóa message hoặc enum, hoặc đổi số của giá trị enum. Thay đổi JSON phá vỡ tương thích nghĩa là dữ liệu nhị phân vẫn hoạt động nhưng định dạng JSON hoặc văn bản thay đổi, chẳng hạn đổi tên trường hoặc giá trị enum. Cảnh báo áp dụng cho thay đổi vẫn hoạt động trên wire nhưng có thể cắt cụt hoặc diễn giải lại giá trị, chẳng hạn int32 thành int64, hoặc chuyển trường vào hay ra khỏi oneof.

Cách so sánh

Đối chiếu message và enum theo tên bỏ phần package, và trường theo số, theo quy tắc cập nhật message type trong hướng dẫn ngôn ngữ protobuf. Các message và enum lồng bên trong message khác cũng được so sánh.

Những điều không hỗ trợ

Parser đọc tệp proto2 và proto3 gồm message, enum, oneof, map, kiểu lồng nhau, số và tên reserved, cùng field options. Imports được liệt kê nhưng không resolve, nên các type từ tệp khác chỉ được so theo tên. Editions, groups và extensions bị từ chối. Services được bỏ qua.

Bước tiếp theo