Réparateur Protobuf
Répare les fichiers .proto cassés en ligne — corrige les points-virgules manquants, les accolades non fermées, les déclarations de syntaxe incorrectes et les erreurs de tag.
C'est quoi le Réparateur Protobuf ?
Un fichier .proto cassé ? protoc plante sur un seul point-virgule manquant, un corps de message non fermé ou une accolade orpheline, et le reste du fichier devient inutilisable tant que tu ne l'as pas trouvé. Cet outil lit les schémas Protocol Buffers mal formés et corrige automatiquement ces problèmes — colle le code, on te rend une version propre.
Il vérifie d'abord ce sur quoi protoc trébuche : un syntax = "proto3"; manquant en haut, des points-virgules absents en fin de ligne de champ, des {} déséquilibrées dans des corps de message/enum imbriqués, et des problèmes de guillemets ou d'imports. La sortie suit les règles du guide officiel du langage proto3 et de la référence de grammaire proto3, donc ce que tu récupères est un schéma que protoc acceptera vraiment.
Pas d'upload de fichier, pas de partage de schéma — ton .proto reste dans cet onglet. Répare-le en quelques secondes et retourne générer tes bindings.
Comment utiliser le Réparateur Protobuf
Trois étapes. Fonctionne sur des schémas tirés d'un repo, copiés depuis une code review ou édités à la main et désormais cassés.
Coller un .proto cassé ou charger l'exemple
Dépose le schéma cassé dans l'éditeur de gauche. Clique sur Exemple .proto pour charger un exemple avec les erreurs typiques — un point-virgule manquant après un champ, un corps de message qui ne ferme jamais, et un point-virgule absent sur la ligne syntax. Exemple de proto cassé :
syntax = "proto3"
message LineItem {
string sku = 1;
int32 quantity = 2
double unit_price = 3;Deux erreurs ici : pas de point-virgule après la déclaration syntax, et le bloc LineItem ne se ferme jamais. Les deux sont typiques de ce que le réparateur corrige.
Cliquer sur Réparer Protobuf !!
Clique sur le bouton vert Réparer Protobuf !!. Le réparateur lit le schéma, restaure les points-virgules manquants, équilibre les accolades {}, normalise la déclaration syntax et met les guillemets corrects sur les imports. Les tags de champ, les noms et les types ne sont pas touchés.
Vérifier la sortie réparée
Le panneau de droite contient le .proto réparé. Remets-le dans ton projet et lance protoc pour confirmer. Pour les schémas qui pilotent des services RPC, vérifie aussi le résultat avec notre Validateur Protobuf avant de générer les bindings. Tout tourne dans ton navigateur — le schéma n'est jamais stocké.
Quand tu vas vraiment t'en servir
Sauver un schéma édité à la main
Tu as ajouté un nouveau champ, supprimé une accolade par accident, et maintenant protoc remonte des erreurs trois messages plus bas. Colle le fichier, récupère ton accolade et avance — au lieu de scruter à l'œil un schéma de 400 lignes.
Corriger un .proto généré par un LLM
Tu as demandé à un LLM de produire un .proto à partir d'un échantillon JSON ? La structure est généralement bonne mais il oublie le syntax = "proto3";, omet des points-virgules ou enveloppe le tout dans des barrières markdown. Le réparateur nettoie tout ça.
Réparer après un mauvais merge
Les marqueurs de conflit ont été résolus à la va-vite et le .proto refuse de compiler. Passe-le dans le réparateur pour remettre la structure en place et examiner le vrai diff sémantique dans Git au lieu de te battre avec la syntaxe.
Récupérer des schémas depuis des logs ou de la doc
Tu as extrait un .proto d'une page wiki, d'une vieille description de PR ou d'une OCR de capture d'écran ? Le texte a souvent des caractères parasites et une indentation cassée. Le réparateur le ramène à un état que protoc accepte.
Questions courantes
Mon fichier .proto est-il stocké ou envoyé quelque part ?
Ton schéma est envoyé à notre backend uniquement pour exécuter la réparation, et on ne le conserve pas — une fois la réponse renvoyée, il a disparu. Rien n'est journalisé avec tes données, et il n'y a pas de trackers tiers sur le chemin de la requête. Si tu as un schéma sensible (services internes, APIs non publiées), masque les identifiants avant de coller, comme tu le ferais pour le partager dans un rapport de bug public.
Quelles erreurs corrige-t-il vraiment ?
Les classiques que protoc rejette : déclaration syntax manquante ou erronée (il ajoute syntax = "proto3"; si absent), points-virgules manquants en fin de ligne de champ/option/enum, {} non équilibrées dans les blocs message/enum/service, guillemets manquants ou non appariés sur les options string et les imports, et fautes de frappe évidentes sur des mots-clés comme repeated ou optional.
Va-t-il changer mes numéros de tag ou renommer quelque chose ?
Non. Le réparateur a explicitement comme consigne de réparer la syntaxe uniquement — jamais de renommer messages/champs, changer des numéros de tag ou inventer de nouveaux champs. Les numéros de tag font partie de ton format wire ; y toucher casserait la compatibilité ascendante. Si la sortie semble avoir modifié du contenu sémantique, traite-le comme un bug et ne le commit pas.
Supporte-t-il proto2 aussi bien que proto3 ?
Oui pour les corrections au niveau syntaxe — points-virgules manquants, accolades déséquilibrées et déclarations syntax erronées sont gérés de la même façon. Le réparateur respecte ce qu'il y a sur la ligne syntax ; il ne bascule pas un schéma proto2 en proto3 (les deux ont des sémantiques différentes autour de required/optional et des valeurs par défaut).
Pourquoi pas juste lancer protoc et lire l'erreur ?
Tu devrais — protoc est la source de vérité. Mais ses erreurs pointent un endroit à la fois, et une accolade manquante peut cascader en dix erreurs en aval. Le réparateur sert quand tu veux débloquer le fichier entier en une passe, puis tu relances protoc pour confirmer. Considère ça comme un premier balayage, pas un remplacement.
Peut-il gérer de gros schémas avec beaucoup d'imports ?
Oui, jusqu'à quelques milliers de lignes par requête. La réparation ne regarde que le fichier que tu colles — elle ne suit pas les import ni ne récupère de schémas externes. Si ton schéma importe google/protobuf/timestamp.proto ou d'autres types bien connus, ces imports sont préservés tels quels.
Autres outils Protobuf
Réparer la syntaxe est la première étape. Une fois que le schéma compile, ces outils prennent le relais :