Protobuf Fixer
Reparieren Sie kaputte .proto-Dateien online — fehlende Semikolons, nicht geschlossene Klammern, falsche Syntax-Deklarationen und Tag-Fehler beheben.
Was ist der Protobuf Fixer?
Eine kaputte .proto-Datei? protoc bricht schon bei einem fehlenden Semikolon, einem nicht geschlossenen message-Body oder einer verwaisten Klammer ab, und der Rest der Datei ist unbrauchbar, bis du die Stelle findest. Dieses Tool liest fehlerhafte Protocol Buffers-Schemas und behebt solche Probleme automatisch — einfügen, und du bekommst eine saubere Version zurück.
Geprüft wird zuerst das, woran protoc typischerweise scheitert: ein fehlendes syntax = "proto3"; ganz oben, fehlende Semikolons in Field-Zeilen, unausgeglichene {} in verschachtelten message-/enum-Bodies und Probleme mit Anführungszeichen oder Imports. Die Ausgabe folgt denselben Regeln, die im offiziellen proto3-Sprachleitfaden und in der proto3-Grammatikreferenz beschrieben sind, du bekommst also ein Schema zurück, das protoc auch wirklich akzeptiert.
Keine Datei-Uploads, kein Schema-Sharing — deine .proto bleibt in diesem Tab. In Sekunden repariert, und du kannst zurück zum Generieren der Bindings.
So nutzt du den Protobuf Fixer
Drei Schritte. Funktioniert mit Schemas aus einem Repo, aus einem Code Review kopiert oder von Hand bearbeitet und jetzt kaputt.
Kaputte .proto einfügen oder Beispiel laden
Wirf das kaputte Schema in den linken Editor. Klick auf Beispiel-.proto, um ein Beispiel mit den typischen Fehlern zu laden — fehlendes Semikolon nach einem Field, ein message-Body, der nie schließt, und ein verwaistes fehlendes Semikolon in der syntax-Zeile. Beispiel für eine kaputte .proto:
syntax = "proto3"
message LineItem {
string sku = 1;
int32 quantity = 2
double unit_price = 3;Hier sind zwei Fehler: kein Semikolon nach der Syntax-Deklaration, und der LineItem-Block schließt nie. Beides ist typisch für das, was der Fixer behebt.
Auf Protobuf reparieren!! klicken
Drück den grünen Protobuf reparieren!!-Button. Der Fixer liest das Schema, ergänzt fehlende Semikolons, balanciert die {}-Klammern, normalisiert die syntax-Deklaration und setzt Anführungszeichen bei Imports korrekt. Field-Tags, Namen und Typen bleiben unangetastet.
Korrigierte Ausgabe prüfen
Im rechten Panel steht die reparierte .proto. Pack sie zurück ins Projekt und lass protoc laufen, um zu bestätigen. Bei Schemas, die RPC-Services treiben, lohnt es sich, das Ergebnis vor dem Generieren der Bindings noch durch unseren Protobuf Validator zu jagen. Alles läuft im Browser — das Schema wird nie gespeichert.
Wann du das wirklich brauchst
Ein handbearbeitetes Schema retten
Du hast ein neues Field hinzugefügt, dabei aus Versehen eine Klammer gelöscht, und jetzt meldet protoc Fehler drei Messages weiter unten. Datei einfügen, Klammer zurückbekommen und weiterarbeiten — statt ein 400-Zeilen-Schema mit dem Auge abzusuchen.
LLM-generierte .proto reparieren
Eine LLM gebeten, eine .proto aus einem JSON-Sample zu erstellen? Die Struktur stimmt meistens, aber sie vergisst syntax = "proto3";, lässt Semikolons weg oder packt das Ganze in Markdown-Fences. Der Fixer räumt das auf.
Nach einem schlechten Merge reparieren
Konflikt-Marker sind schlampig aufgelöst worden und die .proto kompiliert nicht. Schick sie durch den Fixer, damit die Struktur wieder steht und du in Git den eigentlichen semantischen Diff prüfen kannst, statt mit der Syntax zu kämpfen.
Schemas aus Logs oder Docs zurückgewinnen
Eine .proto aus einer Wiki-Seite, einer alten PR-Beschreibung oder einem OCR-Screenshot gezogen? Der Text hat meist verirrte Zeichen und kaputte Einrückung. Der Fixer macht daraus wieder etwas, das protoc akzeptiert.
Häufige Fragen
Wird meine .proto-Datei gespeichert oder irgendwohin geschickt?
Dein Schema geht nur an unser Backend, um die Reparatur durchzuführen, und wir behalten es nicht — sobald die Antwort zurück ist, ist es weg. Es wird nichts zusammen mit deinen Daten geloggt, und im Request-Pfad sind keine Drittanbieter-Tracker. Bei sensiblen Schemas (interne Services, unveröffentlichte APIs) entferne Identifier vor dem Einfügen, genauso wie du es bei einem öffentlichen Bug-Report machen würdest.
Welche Arten von Fehlern werden tatsächlich behoben?
Die üblichen, die protoc ablehnt: fehlende oder falsche syntax-Deklaration (er fügt syntax = "proto3"; ein, falls nicht vorhanden), fehlende Semikolons in Field-/Option-/Enum-Zeilen, unausgeglichene {} in message-/enum-/service-Blöcken, fehlende oder nicht passende Anführungszeichen bei String-Options und Imports, sowie offensichtliche Tippfehler bei Keywords wie repeated oder optional.
Werden meine Field-Tag-Nummern geändert oder etwas umbenannt?
Nein. Der Fixer hat den expliziten Auftrag, nur Syntax zu reparieren — niemals Messages/Fields umzubenennen, Tag-Nummern zu ändern oder neue Fields zu erfinden. Tag-Nummern sind Teil deines Wire-Formats; daran zu drehen würde die Abwärtskompatibilität brechen. Wenn die Ausgabe so wirkt, als hätte sich semantischer Inhalt geändert, behandle das als Bug und committe es nicht.
Wird neben proto3 auch proto2 unterstützt?
Ja, für Fixes auf Syntax-Ebene — fehlende Semikolons, unausgeglichene Klammern und kaputte syntax-Deklarationen werden in beiden Fällen gleich behandelt. Der Fixer respektiert, was in der syntax-Zeile steht; er macht aus einem proto2-Schema kein proto3 (die haben rund um required/optional und Defaults unterschiedliche Semantik).
Warum nicht einfach protoc laufen lassen und den Fehler lesen?
Solltest du auch — protoc ist die Source of Truth. Aber seine Fehler zeigen immer auf eine Stelle, und eine fehlende Klammer kann zehn Folgefehler nach sich ziehen. Der Fixer ist dafür da, die ganze Datei in einem Rutsch wieder lauffähig zu machen, danach lässt du protoc nochmal zur Bestätigung laufen. Sieh ihn als ersten Durchgang, nicht als Ersatz.
Kann er große Schemas mit vielen Imports verarbeiten?
Ja, bis zu ein paar tausend Zeilen pro Request. Die Reparatur sieht nur die Datei, die du einfügst — sie verfolgt keine import-Statements und holt keine externen Schemas. Wenn dein Schema google/protobuf/timestamp.proto oder andere Well-known-Types importiert, bleiben diese Imports unverändert.
Andere Protobuf-Tools
Die Syntax zu reparieren ist nur der erste Schritt. Wenn das Schema kompiliert, bringen dich diese Tools den Rest des Wegs: