happytails.ai
ไทย

เครื่องมือตรวจความเข้ากันได้ของ protobuf

เปรียบเทียบไฟล์ .proto สองเวอร์ชันเพื่อหาการแก้ไขที่ทำให้ message ที่เขียนลง wire หรือ JSON ใช้ไม่ได้ อธิบายการลบหมายเลข การเปลี่ยนชนิด การเปลี่ยนชื่อฟิลด์ และการเปลี่ยน enum แยกกัน

รับไฟล์ .proto สองไฟล์ ไฟล์ละไม่เกิน 1,000,000 อักขระ สูงสุด 200,000 tokens, 2,000 messages และ enums, 10,000 ฟิลด์ต่อ message และ message ซ้อนกัน 32 ระดับ การเปรียบเทียบทำงานใน background worker ของเบราว์เซอร์ ดาวน์โหลดรายงาน JSON และรายการผลการตรวจ CSV ได้ เวอร์ชันที่ใช้เขียนข้อมูลเดิม วางไฟล์ที่เปลี่ยนใน New schema สูงสุด 1,000,000 ตัวอักษร ตรวจสอบการตั้งค่าก่อนเริ่มประมวลผล

ผลลัพธ์ของคุณ

รายงานปัญหาหรือแบ่งปันไอเดีย

เครื่องมือตรวจความเข้ากันได้ของ protobuf
  1. วางไฟล์ .proto เก่าในช่องหลัก
  2. วางเวอร์ชันใหม่ในช่อง New schema
  3. เรียกใช้การตรวจสอบและตรวจทานผลตามลำดับความรุนแรงสูงสุดก่อน
  4. ดาวน์โหลดรายงาน JSON หรือรายการ CSV

สิ่งที่ควรทราบ

รับไฟล์ .proto สองไฟล์ ไฟล์ละไม่เกิน 1,000,000 อักขระ สูงสุด 200,000 tokens, 2,000 messages และ enums, 10,000 ฟิลด์ต่อ message และ message ซ้อนกัน 32 ระดับ การเปรียบเทียบทำงานใน background worker ของเบราว์เซอร์ ดาวน์โหลดรายงาน JSON และรายการผลการตรวจ CSV ได้

ระดับความรุนแรง

การเปลี่ยนแปลงที่ทำให้เข้ากันไม่ได้หมายถึงโปรแกรมเก่าและใหม่อาจอ่าน binary message ผิด เช่น ลบฟิลด์โดยไม่สงวนหมายเลข นำหมายเลขในช่วงที่สงวนไว้กลับมาใช้ เปลี่ยนชนิดที่มีการเข้ารหัส wire ต่างกัน เปลี่ยนระหว่างฟิลด์ค่าเดียวกับค่าซ้ำ ลบ message หรือ enum หรือเปลี่ยนหมายเลขค่า enum การเปลี่ยน JSON ที่ทำให้เข้ากันไม่ได้หมายถึง binary data ยังใช้ได้ แต่รูปแบบ JSON หรือข้อความเปลี่ยน เช่น เปลี่ยนชื่อฟิลด์หรือค่า enum คำเตือนครอบคลุมการเปลี่ยนที่ยังใช้กับ wire ได้แต่อาจตัดทอนหรือตีความค่าใหม่ เช่น int32 เป็น int64 หรือย้ายฟิลด์เข้าออกจาก oneof

วิธีเปรียบเทียบ

จับคู่ข้อความและ enum ด้วยชื่อที่ตัด package ออก และจับคู่ฟิลด์ด้วยหมายเลข ตามกฎในคู่มือภาษา protobuf สำหรับการปรับปรุง message type นอกจากนี้ยังเปรียบเทียบข้อความและ enum ที่ซ้อนอยู่ในข้อความอื่นด้วย

สิ่งที่ไม่รองรับ

parser อ่านไฟล์ proto2 และ proto3 ที่มี message, enum, oneof, map, nested type, reserved numbers และ names รวมถึง field options โดยแสดง imports แต่ไม่ resolve; type จากไฟล์อื่นจึงเทียบด้วยชื่อเท่านั้น Editions, groups และ extensions จะถูกปฏิเสธ ส่วน services จะข้ามไป

ขั้นตอนถัดไปที่มีประโยชน์