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.
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
- 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.
- 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.
- 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.