happytails.ai
Română

Verificarea compatibilității Protobuf

Compară două versiuni ale unui fișier .proto și găsește modificările care rup compatibilitatea mesajelor deja scrise binar sau ca JSON. Numerele eliminate, schimbările de tip, câmpurile redenumite și schimbările de enumerare sunt explicate separat.

Acceptă două fișiere .proto de cel mult 1.000.000 de caractere fiecare, cu maximum 200.000 de tokenuri, 2.000 de mesaje și enumerări, 10.000 de câmpuri pe mesaj și 32 de niveluri de mesaje imbricate. Comparația rulează în browser într-o sarcină separată în fundal. Se pot descărca un raport JSON și o listă CSV de constatări. Versiunea cu care au fost scrise datele existente. Pune fișierul modificat în Schemă nouă. Până la 1.000.000 de caractere. Verifică setările înainte de rulare.

Rezultatul tău

Raportează o problemă sau împărtășește o idee.

Verificarea compatibilității Protobuf
  1. Lipește fișierul .proto vechi în câmpul principal.
  2. Lipește versiunea nouă în câmpul Schemă nouă.
  3. Rulează verificarea și examinează constatările, începând cu cele mai grave.
  4. Descarcă raportul JSON sau lista CSV.

La ce să te aștepți

Acceptă două fișiere .proto de cel mult 1.000.000 de caractere fiecare, cu maximum 200.000 de tokenuri, 2.000 de mesaje și enumerări, 10.000 de câmpuri pe mesaj și 32 de niveluri de mesaje imbricate. Comparația rulează în browser într-o sarcină separată în fundal. Se pot descărca un raport JSON și o listă CSV de constatări.

Niveluri de gravitate

O schimbare incompatibilă înseamnă că programele vechi și noi pot citi greșit mesaje binare: un câmp eliminat al cărui număr nu este rezervat, un număr reutilizat dintr-un interval rezervat, un tip cu altă codificare binară, o schimbare între valoare unică și valori repetate, un mesaj sau o enumerare eliminate ori o valoare de enumerare renumerotată. Incompatibilitatea JSON înseamnă că datele binare încă funcționează, dar formatul JSON sau text se schimbă, de exemplu la redenumirea unui câmp sau a unei valori de enumerare. Avertismentele acoperă schimbări care funcționează binar, dar pot trunchia sau reinterpreta valori, precum int32 în int64 sau mutări în și din oneof.

Cum se face comparația

Mesajele și enumerările sunt potrivite după nume fără pachet, iar câmpurile după număr, conform regulilor de actualizare a unui tip de mesaj din ghidul limbajului protobuf. Sunt comparate și mesajele și enumerările imbricate în alte mesaje.

Ce nu este acceptat

Parserul citește fișiere proto2 și proto3 cu mesaje, enumerări, oneof, câmpuri map, tipuri imbricate, numere și nume rezervate și opțiuni de câmpuri. Importurile sunt listate, dar fișierele țintă nu sunt încărcate, astfel încât tipurile din alte fișiere sunt comparate numai după nume. Editions, grupurile și extensiile sunt respinse. Serviciile sunt omise.

Pași următori utili