Verificatore di compatibilità Protobuf
Confronta due versioni di un file .proto e trova le modifiche che rendono incompatibili messaggi già scritti in formato binario o JSON. Numeri rimossi, modifiche dei tipi, campi rinominati e modifiche delle enumerazioni sono spiegati singolarmente.
Accetta due file .proto fino a 1.000.000 di caratteri ciascuno, con al massimo 200.000 token, 2.000 messaggi ed enumerazioni, 10.000 campi per messaggio e 32 livelli di messaggi annidati. Il confronto viene eseguito nel browser tramite un’elaborazione separata in secondo piano. I download sono un report JSON e un elenco CSV dei risultati. La versione con cui sono stati scritti i dati esistenti. Inserisci il file modificato in Nuovo schema. Fino a 1.000.000 di caratteri. Controlla le impostazioni prima di eseguire.
Il tuo risultato
Verificatore di compatibilità Protobuf
- Incolla il vecchio file .proto nel campo principale.
- Incolla la nuova versione nel campo Nuovo schema.
- Esegui il controllo ed esamina i risultati, dai più gravi.
- Scarica il report JSON o l'elenco CSV.
Cosa aspettarsi
Accetta due file .proto fino a 1.000.000 di caratteri ciascuno, con al massimo 200.000 token, 2.000 messaggi ed enumerazioni, 10.000 campi per messaggio e 32 livelli di messaggi annidati. Il confronto viene eseguito nel browser tramite un’elaborazione separata in secondo piano. I download sono un report JSON e un elenco CSV dei risultati.
Livelli di gravità
Incompatibile significa che programmi vecchi e nuovi possono interpretare erroneamente i messaggi binari: un campo rimosso senza riservarne il numero, un numero riutilizzato da un intervallo riservato, un tipo con codifica binaria diversa, un passaggio tra singolo e ripetuto, un messaggio o un'enumerazione rimossi oppure un valore di enumerazione rinumerato. Incompatibile con JSON significa che i dati binari funzionano ancora ma il formato JSON o testuale cambia, ad esempio per un campo o un valore di enumerazione rinominato. Gli avvisi riguardano modifiche compatibili in formato binario che possono troncare o reinterpretare valori, come da int32 a int64 o spostamenti dentro e fuori da un oneof.
Come avviene il confronto
Messaggi ed enumerazioni vengono associati per nome senza il pacchetto, i campi per numero, secondo le regole della guida protobuf per aggiornare un tipo di messaggio. Vengono confrontati anche messaggi ed enumerazioni annidati in altri messaggi.
Cosa non è supportato
Il parser legge file proto2 e proto3 con messaggi, enumerazioni, oneof, mappe, tipi annidati, numeri e nomi riservati e opzioni dei campi. Gli import vengono elencati ma non risolti, quindi i tipi di altri file vengono confrontati solo per nome. Edizioni, gruppi ed estensioni vengono rifiutati. I servizi vengono saltati.