Kompatibilitetskontroll for Protobuf
Sammenlign to versjoner av en .proto-fil og finn endringer som bryter kompatibiliteten for meldinger som allerede er skrevet binært eller som JSON. Fjernede numre, typeendringer, omdøpte felt og endringer i enumerasjoner forklares hver for seg.
Godtar to .proto-filer på opptil 1 000 000 tegn hver, med høyst 200 000 token, 2 000 meldinger og enumerasjoner, 10 000 felt per melding og 32 nivåer med nøstede meldinger. Sammenligningen kjøres i nettleseren i en bakgrunnsworker. Nedlastingene er en JSON-rapport og en CSV-liste over funn. Versjonen som de eksisterende dataene ble skrevet med. Legg den endrede filen i Nytt skjema. Opptil 1 000 000 tegn. Se gjennom innstillingene før du kjører.
Resultatet ditt
Kompatibilitetskontroll for Protobuf
- Lim inn den gamle .proto-filen i hovedfeltet.
- Lim inn den nye versjonen i feltet Nytt skjema.
- Kjør kontrollen og se gjennom funnene, med de alvorligste først.
- Last ned JSON-rapporten eller CSV-listen.
Dette bør du vite
Godtar to .proto-filer på opptil 1 000 000 tegn hver, med høyst 200 000 token, 2 000 meldinger og enumerasjoner, 10 000 felt per melding og 32 nivåer med nøstede meldinger. Sammenligningen kjøres i nettleseren i en bakgrunnsworker. Nedlastingene er en JSON-rapport og en CSV-liste over funn.
Alvorlighetsgrader
Inkompatibel betyr at gamle og nye programmer kan feiltolke binære meldinger: et fjernet felt der nummeret ikke er reservert, et nummer gjenbrukt fra et reservert område, en type med en annen binærkoding, en endring mellom enkeltverdi og gjentatte verdier, en fjernet melding eller enumerasjon, eller en enum-verdi som har fått nytt nummer. Inkompatibel med JSON betyr at binære data fortsatt fungerer, men at JSON- eller tekstformatet endres, for eksempel når et felt eller en enum-verdi bytter navn. Advarsler omfatter endringer som fungerer binært, men kan avkorte eller omtolke verdier, som int32 til int64 eller flytting inn i og ut av en oneof.
Slik sammenlignes det
Meldinger og enumerasjoner sammenlignes etter navn uten pakken, og felt etter nummer, i tråd med protobuf-språkguidens regler for oppdatering av en meldingstype. Meldinger og enumerasjoner som er nøstet i andre meldinger, sammenlignes også.
Dette støttes ikke
Parseren leser proto2- og proto3-filer med meldinger, enumerasjoner, oneof, map-felt, nøstede typer, reserverte numre og navn samt feltinnstillinger. Importer listes, men løses ikke, så typer fra andre filer sammenlignes bare etter navn. Editions, grupper og utvidelser avvises. Tjenester hoppes over.