Protobuf Fixer
Repareer kapotte .proto-bestanden online — fix ontbrekende puntkomma's, niet-gesloten accolades, foute syntax-declaraties en tag-fouten.
Wat is Protobuf Fixer?
Een kapot .proto-bestand? protoc klapt eruit op één ontbrekende puntkomma, een niet-gesloten message-body of een verdwaalde accolade, en de rest van het bestand is onbruikbaar tot je het vindt. Deze tool leest misvormde Protocol Buffers-schema's en lost die problemen automatisch op — plak het erin en je krijgt een schone versie terug.
Hij checkt eerst de dingen waar protoc over struikelt: een ontbrekende syntax = "proto3"; bovenaan, ontbrekende puntkomma's op veldregels, niet-gebalanceerde {} in geneste message/enum-bodies en problemen met aanhalingstekens of imports. De output volgt dezelfde regels uit de officiële proto3-taalgids en de proto3-grammar reference, dus wat je terugkrijgt is een schema dat protoc ook echt accepteert.
Geen file uploads, geen schema-deling — je .proto blijft in dit tabblad. Fix hem in seconden en ga door met je bindings genereren.
Zo gebruik je de Protobuf Fixer
Drie stappen. Werkt op schema's die je uit een repo trekt, uit een code review kopieert of met de hand hebt aangepast en nu kapot zijn.
Plak kapotte .proto of laad het voorbeeld
Zet het kapotte schema in de editor links. Druk op Voorbeeld .proto om een voorbeeld te laden met de typische fouten — een ontbrekende puntkomma na een veld, een message-body die nooit sluit en een ontbrekende puntkomma op de syntax-regel. Voorbeeld van een kapotte proto:
syntax = "proto3"
message LineItem {
string sku = 1;
int32 quantity = 2
double unit_price = 3;Twee fouten hier: geen puntkomma na de syntax-declaratie en het LineItem-blok wordt nooit afgesloten. Allebei typisch voor wat de fixer repareert.
Klik op Fix Protobuf!!
Druk op de groene Fix Protobuf!!-knop. De fixer leest het schema, herstelt ontbrekende puntkomma's, balanceert {}-accolades, normaliseert de syntax-declaratie en zet imports correct tussen aanhalingstekens. Veld-tags, namen en types blijven met rust.
Bekijk de gefixte output
In het rechterpaneel staat de gerepareerde .proto. Zet hem terug in je project en run protoc ter bevestiging. Voor schema's die RPC-services aansturen, doe ook even een sanity check met onze Protobuf Validator voordat je bindings genereert. Alles draait in je browser — het schema wordt nooit opgeslagen.
Wanneer je dit echt gebruikt
Een handmatig bewerkt schema redden
Je hebt een nieuw veld toegevoegd, per ongeluk een accolade weggehaald, en nu meldt protoc fouten drie messages verderop. Plak het bestand erin, krijg de accolade terug en ga door — in plaats van met het oog door een schema van 400 regels te zoeken.
Door een LLM gegenereerde .proto fixen
Een LLM gevraagd om een .proto op te stellen vanuit een JSON-voorbeeld? De structuur klopt meestal, maar hij vergeet syntax = "proto3";, laat puntkomma's vallen of stopt boel in markdown-fences. De fixer ruimt dat op.
Repareren na een slordige merge
Conflict-markers zijn slordig opgelost en de .proto compileert niet. Haal hem door de fixer om de structuur weer in elkaar te zetten, zodat je de eigenlijke semantische diff in Git kunt reviewen in plaats van met syntax te vechten.
Schema's herstellen uit logs of docs
Een .proto uit een wiki-pagina, een oude PR-omschrijving of een OCR van een screenshot getrokken? De tekst heeft meestal verdwaalde tekens en kapotte indentatie. De fixer brengt het terug naar iets dat protoc accepteert.
Veelgestelde vragen
Wordt mijn .proto-bestand opgeslagen of ergens heen gestuurd?
Je schema gaat naar onze backend om de reparatie uit te voeren, en we bewaren het niet — zodra het antwoord terugkomt, is het weg. Er wordt niets gelogd met je data en er zitten geen third-party trackers in het request-pad. Heb je een gevoelig schema (interne services, niet-uitgebrachte API's), maak dan identifiers onleesbaar voordat je plakt — net zoals je zou doen als je het in een publieke bug report deelt.
Welk soort fouten fixt hij eigenlijk?
De gangbare die protoc afkeurt: ontbrekende of foute syntax-declaratie (hij voegt syntax = "proto3"; toe als die ontbreekt), ontbrekende puntkomma's op veld-/option-/enum-regels, niet-gebalanceerde {} in message/enum/service-blokken, ontbrekende of niet-overeenkomende aanhalingstekens op string-options en imports, en duidelijke typo's in keywords als repeated of optional.
Verandert hij mijn veld-tag-nummers of hernoemt hij iets?
Nee. De fixer is expliciet verteld dat hij alleen syntax mag repareren — nooit messages/velden hernoemen, tag-nummers wijzigen of nieuwe velden verzinnen. Tag-nummers zijn onderdeel van je wire format; eraan zitten breekt backwards compatibiliteit. Lijkt de output ooit semantische inhoud te hebben veranderd, behandel dat dan als een bug en commit het niet.
Ondersteunt hij proto2 net als proto3?
Ja, voor de syntax-fixes — ontbrekende puntkomma's, niet-gebalanceerde accolades en foute syntax-declaraties worden hetzelfde afgehandeld, ongeacht de versie. De fixer respecteert wat er op de syntax-regel staat; hij flipt geen proto2-schema naar proto3 (die hebben andere semantiek rond required/optional en defaults).
Waarom niet gewoon protoc draaien en de fout lezen?
Doe dat — protoc is de bron van waarheid. Maar zijn errors wijzen naar één plek tegelijk, en één ontbrekende accolade kan in tien vervolgfouten cascaderen. De fixer is voor wanneer je het hele bestand in één pass los wilt hebben en daarna protoc opnieuw runt om te bevestigen. Zie het als een eerste veegslag, geen vervanging.
Kan hij grote schema's met veel imports aan?
Ja, tot een paar duizend regels per request. De reparatie kijkt alleen naar het bestand dat je plakt — hij volgt geen import-statements en haalt geen externe schema's op. Importeert je schema google/protobuf/timestamp.proto of andere well-known types, dan blijven die imports zoals ze zijn.
Andere Protobuf-tools
De syntax fixen is de eerste stap. Zodra het schema compileert, brengen deze tools je verder: