Protobuf Fixer
Ripara file .proto rotti online — sistema punti e virgola mancanti, parentesi non chiuse, dichiarazioni di sintassi sbagliate ed errori sui tag.
Che cos'è Protobuf Fixer?
Hai un file .proto rotto? protoc si pianta su un singolo punto e virgola mancante, su un corpo message non chiuso o su una parentesi vagante, e il resto del file diventa inutilizzabile finché non lo trovi. Questo strumento legge schemi Protocol Buffers malformati e sistema quei problemi automaticamente — incollalo e ti restituiamo una versione pulita.
Controlla per prime le cose su cui protoc inciampa: la mancanza di syntax = "proto3"; in cima, punti e virgola mancanti sulle righe dei campi, {} non bilanciate nei corpi annidati di message/enum e problemi con virgolette o import. L'output segue le stesse regole descritte nella guida ufficiale al linguaggio proto3 e nel riferimento alla grammatica proto3, quindi quello che riavrai è uno schema che protoc accetterà davvero.
Niente upload, niente condivisione di schemi — il tuo .proto resta in questo tab. Lo sistemi in pochi secondi e torni a generare i binding.
Come usare Protobuf Fixer
Tre passi. Funziona su schemi presi da un repo, copiati da una code review o modificati a mano e ora rotti.
Incolla un .proto rotto o carica l'esempio
Trascina lo schema rotto nell'editor di sinistra. Premi .proto di esempio per caricare un file con gli errori tipici — punto e virgola mancante dopo un campo, un corpo message che non si chiude mai e un punto e virgola mancante sulla riga syntax. Esempio di proto rotto:
syntax = "proto3"
message LineItem {
string sku = 1;
int32 quantity = 2
double unit_price = 3;Qui ci sono due errori: nessun punto e virgola dopo la dichiarazione syntax, e il blocco LineItem non si chiude mai. Sono entrambi tipici di ciò che il fixer ripara.
Clicca su Ripara Protobuf!!
Premi il pulsante verde Ripara Protobuf!!. Il fixer legge lo schema, ripristina i punti e virgola mancanti, bilancia le parentesi {}, normalizza la dichiarazione syntax e mette le virgolette correttamente sugli import. Tag, nomi e tipi dei campi restano invariati.
Controlla l'output riparato
Nel pannello di destra c'è il .proto sistemato. Rimettilo nel tuo progetto e lancia protoc per confermare. Per schemi che alimentano servizi RPC, fai anche un controllo aggiuntivo del risultato con il nostro Protobuf Validator prima di generare i binding. Tutto gira nel tuo browser — lo schema non viene mai memorizzato.
Quando ti serve davvero
Salvare uno schema modificato a mano
Hai aggiunto un nuovo campo, hai cancellato per sbaglio una parentesi e ora protoc segnala errori tre messaggi più in basso. Incolla il file, riprenditi la parentesi e vai avanti — invece di scrutare a occhio uno schema da 400 righe.
Sistemare .proto generati da un LLM
Hai chiesto a un LLM di buttare giù un .proto da un esempio JSON? La struttura di solito è giusta, ma dimentica syntax = "proto3";, salta i punti e virgola o avvolge tutto in fence markdown. Il fixer ripulisce queste cose.
Riparare dopo un merge sporco
I marker di conflitto sono stati risolti in modo approssimativo e il .proto non compila. Passalo nel fixer per rimettere a posto la struttura, così puoi rivedere il vero diff semantico in Git invece di combattere con la sintassi.
Recuperare schemi da log o documentazione
Hai estratto un .proto da una pagina wiki, dalla descrizione di una vecchia PR o da un OCR di uno screenshot? Il testo di solito ha caratteri vaganti e indentazione rotta. Il fixer lo riporta a qualcosa che protoc accetta.
Domande frequenti
Il mio file .proto viene salvato o inviato da qualche parte?
Il tuo schema viene mandato al nostro backend solo per fare la riparazione e non lo conserviamo — appena torna la risposta, sparisce. Niente viene loggato insieme ai tuoi dati e non ci sono tracker di terze parti nel percorso della richiesta. Se hai uno schema sensibile (servizi interni, API non ancora pubblicate), oscura gli identificativi prima di incollare, come faresti se lo condividessi in un bug report pubblico.
Che tipo di errori sistema davvero?
Quelli comuni che protoc rifiuta: dichiarazione syntax mancante o sbagliata (aggiunge syntax = "proto3"; se manca), punti e virgola mancanti su righe di campi/option/enum, {} non bilanciate nei blocchi message/enum/service, virgolette mancanti o sbagliate su option string e import, e refusi evidenti su parole chiave come repeated o optional.
Cambierà i numeri dei tag dei campi o rinominerà qualcosa?
No. Al fixer è detto esplicitamente di riparare solo la sintassi — mai di rinominare message/campi, cambiare i numeri dei tag o inventare nuovi campi. I numeri dei tag fanno parte del tuo formato wire; toccarli romperebbe la retrocompatibilità. Se l'output dovesse mai sembrare aver cambiato il contenuto semantico, trattalo come un bug e non committarlo.
Supporta proto2 oltre a proto3?
Sì per le correzioni a livello di sintassi — punti e virgola mancanti, parentesi non bilanciate e dichiarazioni syntax sbagliate vengono gestiti allo stesso modo a prescindere. Il fixer rispetta quello che trova sulla riga syntax; non ribalta uno schema proto2 in proto3 (i due hanno semantiche diverse su required/optional e default).
Perché non lanciare semplicemente protoc e leggere l'errore?
Dovresti — protoc è la fonte di verità. Ma i suoi errori puntano a una posizione alla volta, e una sola parentesi mancante può cascata in dieci errori a valle. Il fixer serve a quando vuoi sbloccare l'intero file in una sola passata e poi rilanciare protoc per confermare. Pensalo come una prima passata, non come un sostituto.
Regge schemi grandi con molti import?
Sì, fino a qualche migliaio di righe per richiesta. La riparazione guarda solo il file che incolli — non insegue gli statement import e non scarica schemi esterni. Se il tuo schema importa google/protobuf/timestamp.proto o altri well-known type, quegli import vengono preservati così come sono.
Altri strumenti Protobuf
Sistemare la sintassi è il primo passo. Una volta che lo schema compila, questi strumenti lo portano avanti: