Esamina Protobuf e schemi locali

Protobuf tipi0/1/2/3/4/5 con posizioni e byte esatti; senza schema nessun nome/testo indovinato.

  • Funziona nel browser
  • Nessun caricamento
  • Controlla prima di scaricare

File e schemi restano nella scheda e in un worker locale. Nessun invio né salvataggio automatico. Svuotare o chiudere la scheda fa perdere i dati inseriti: conserva gli originali e i risultati.

Protobuf tipi0/1/2/3/4/5 con posizioni e byte esatti; senza schema nessun nome/testo indovinato. Grammatica locale proto2/proto3, import locali, scalari/enum/messaggi/gruppi, ripetizioni packed, mappe e oneof. Opzionali assenti, obbligatori richiesti. Frammenti di messaggio uniti; ultimo valore scalare e ultimo membro oneof attivo. Mappe conservano duplicati per ispezione, senza JSON canonico. Editions/estensioni non supportate. Nessun import remoto, costruttore/codec generato, eval o esecuzione. Interi come testo decimale, byte hex; nessuna certificazione semantica applicativa. Salva rapporti e originale; schemas.json conserva schemi locali. I frammenti di messaggio nello stesso valore di mappa si uniscono; le voci restano separate e gli scalari usano l’ultima occorrenza.

File fino a 16 MiB; Protobuf fino a 1 MiB; schema fino a 256 KiB, totale fino a 1 MiB. Profondità 64, 20.000 nodi, 100.000 valori; decodifica 32 MiB; output 8 MiB più l’originale. Anteprima di 200 righe, esportazione di 10.000. Limite di 5 secondi. I 64 MiB di SQLite non corrispondono a tutta la memoria del browser.

File binario locale

0 B

Interpretazione

Metodo e limiti

Profilo supportato

Protobuf tipi0/1/2/3/4/5 con posizioni e byte esatti; senza schema nessun nome/testo indovinato. Grammatica locale proto2/proto3, import locali, scalari/enum/messaggi/gruppi, ripetizioni packed, mappe e oneof. Opzionali assenti, obbligatori richiesti. Frammenti di messaggio uniti; ultimo valore scalare e ultimo membro oneof attivo. Mappe conservano duplicati per ispezione, senza JSON canonico. Editions/estensioni non supportate. Nessun import remoto, costruttore/codec generato, eval o esecuzione. Interi come testo decimale, byte hex; nessuna certificazione semantica applicativa. Salva rapporti e originale; schemas.json conserva schemi locali. I frammenti di messaggio nello stesso valore di mappa si uniscono; le voci restano separate e gli scalari usano l’ultima occorrenza.

Limiti di risorse

File fino a 16 MiB; Protobuf fino a 1 MiB; schema fino a 256 KiB, totale fino a 1 MiB. Profondità 64, 20.000 nodi, 100.000 valori; decodifica 32 MiB; output 8 MiB più l’originale. Anteprima di 200 righe, esportazione di 10.000. Limite di 5 secondi. I 64 MiB di SQLite non corrispondono a tutta la memoria del browser.

File e schemi restano nella scheda e in un worker locale. Nessun invio né salvataggio automatico. Svuotare o chiudere la scheda fa perdere i dati inseriti: conserva gli originali e i risultati.

Come esaminare

  1. File binario locale

    Carica un messaggio binario. La modalità wire non richiede uno schema; la modalità con schema richiede file .proto locali, il nome del file principale e un tipo di messaggio esplicito. Carica l’esempio per partire da sample.proto e dal messaggio Sample.

  2. Schema e metadati

    I byte dell’esempio iniziano con 08 96 01 e continuano con un campo delimitato dalla lunghezza. Con Sample {int64 id=1; string name=2;} vengono letti come id=150 e name=Café. La modalità wire mostra numeri di campo, intervalli di byte e contenuto grezzo senza inventare nomi.

  3. Verifica e salva esportazioni

    Confronta i campi letti con gli offset wire e il numero di campi sconosciuti. Salva report.json, schemas.json (se l’hai fornito) e original.pb. I valori interi sono stringhe decimali; i byte sono in esadecimale, non testo UTF-8 ipotizzato.

Metodo e limiti

Perché i rapporti wire e schema differiscono?

Il formato wire da solo non permette di capire se un valore delimitato dalla lunghezza sia testo, byte o un sottomessaggio: è lo schema scelto a dare l’interpretazione. I campi opzionali mancanti restano assenti, i campi ripetuti conservano ogni occorrenza e per oneof conta l’ultimo membro attivo. Il rapporto non è JSON Protobuf canonico né una validazione semantica dell’applicazione.

Perché il file o la selezione non si può leggere?

Usa il nome qualificato completo e preciso del messaggio e fornisci le importazioni locali. Varint troncati, tipi wire errati, campi obbligatori mancanti e schemi assenti sono errori. Non leggere come messaggio grezzo un involucro applicativo compresso o incorniciato.

Che cosa non fa di proposito questo strumento?

Ispezione locale di proto2 e proto3; Editions ed estensioni non sono supportate. Fino a 16 file di schema locali, 1 MiB in totale, e 1 MiB di byte per il messaggio. Nessuna importazione remota, nessun codice applicativo generato e nessuna esecuzione; le voci duplicate delle mappe restano visibili.