Pega tu .proto roto aquí y haz clic en "¡¡Reparar Protobuf!!" para arreglarloIntroducir .proto inválido

¿Qué es el Reparador de Protobuf?

¿Tienes un archivo .proto roto? protoc falla por un solo punto y coma faltante, un cuerpo de message sin cerrar o una llave perdida, y el resto del archivo se vuelve inservible hasta que lo encuentres. Esta herramienta lee esquemas Protocol Buffers malformados y corrige esos problemas automáticamente — pégalo y te devolvemos una versión limpia.

Revisa primero las cosas con las que protoc tropieza: un syntax = "proto3"; faltante arriba, puntos y comas ausentes en líneas de campos, {} desbalanceadas en cuerpos anidados de message/enum, y problemas de comillas o imports. La salida sigue las reglas de la guía oficial del lenguaje proto3 y la referencia de gramática proto3, así que lo que recibes es un esquema que protoc realmente aceptará.

Sin subir archivos, sin compartir esquemas — tu .proto se queda en esta pestaña. Arréglalo en segundos y vuelve a generar bindings.

Cómo usar el Reparador de Protobuf

Tres pasos. Funciona con esquemas sacados de un repo, copiados de una revisión de código o editados a mano y ahora rotos.

1

Pega un .proto roto o carga el ejemplo

Suelta el esquema roto en el editor de la izquierda. Pulsa Ejemplo .proto para cargar un ejemplo con los errores típicos — un punto y coma faltante tras un campo, un cuerpo de message que nunca cierra y un punto y coma ausente en la línea syntax. Ejemplo de proto roto:

syntax = "proto3"
message LineItem {
  string sku = 1;
  int32 quantity = 2
  double unit_price = 3;

Dos errores aquí: no hay punto y coma tras la declaración syntax, y el bloque LineItem nunca cierra. Ambos son típicos de lo que el reparador arregla.

2

Pulsa ¡¡Reparar Protobuf!!

Pulsa el botón verde ¡¡Reparar Protobuf!!. El reparador lee el esquema, restaura puntos y comas faltantes, balancea las llaves {}, normaliza la declaración syntax y entrecomilla los imports correctamente. Los tags de campo, nombres y tipos se dejan intactos.

3

Revisa la salida reparada

El panel derecho tiene el .proto reparado. Devuélvelo a tu proyecto y ejecuta protoc para confirmar. Para esquemas que dirigen servicios RPC, también valida el resultado con nuestro Validador Protobuf antes de generar bindings. Todo corre en tu navegador — el esquema nunca se almacena.

Cuándo lo vas a usar de verdad

Salvar un esquema editado a mano

Añadiste un nuevo campo, borraste una llave por accidente, y ahora protoc reporta errores tres mensajes más abajo. Pega el archivo, recupera la llave y sigue avanzando — en vez de buscar a ojo en un esquema de 400 líneas.

Arreglar .proto generado por LLM

¿Le pediste a un LLM que redactara un .proto desde una muestra JSON? La estructura suele estar bien pero olvida syntax = "proto3";, omite puntos y comas o envuelve cosas en cercas markdown. El reparador limpia todo eso.

Reparar tras un mal merge

Los marcadores de conflicto se resolvieron sin cuidado y el .proto no compila. Pásalo por el reparador para reconstruir la estructura y poder revisar el diff semántico real en Git en lugar de pelear con la sintaxis.

Recuperar esquemas de logs o documentación

¿Sacaste un .proto de una página wiki, una descripción de PR antigua o un OCR de captura? El texto suele tener caracteres sueltos y indentación rota. El reparador lo deja en algo que protoc acepta.

Preguntas frecuentes

¿Mi archivo .proto se almacena o se envía a algún sitio?

Tu esquema se envía a nuestro backend solo para ejecutar la reparación y no lo persistimos — en cuanto vuelve la respuesta, desaparece. No se registra nada con tus datos y no hay rastreadores de terceros en la ruta de la petición. Si tienes un esquema sensible (servicios internos, APIs no publicadas), oculta los identificadores antes de pegarlo, igual que harías al compartirlo en un reporte de bug público.

¿Qué tipo de errores arregla en realidad?

Los comunes que protoc rechaza: declaración syntax faltante o errónea (añade syntax = "proto3"; si no está), puntos y comas faltantes en líneas de campo/option/enum, {} desbalanceadas en bloques message/enum/service, comillas faltantes o desemparejadas en opciones string e imports, y typos evidentes en palabras clave como repeated u optional.

¿Cambiará mis números de tag o renombrará algo?

No. Al reparador se le indica explícitamente que repare solo la sintaxis — nunca renombrar messages/campos, cambiar números de tag ni inventar campos nuevos. Los números de tag son parte de tu formato wire; tocarlos rompería la compatibilidad hacia atrás. Si la salida parece haber cambiado contenido semántico, trátalo como un bug y no lo commitees.

¿Soporta proto2 además de proto3?

Sí para los arreglos a nivel de sintaxis — puntos y comas faltantes, llaves desbalanceadas y declaraciones syntax erróneas se manejan igual independientemente. El reparador respeta lo que haya en la línea syntax; no convertirá un esquema proto2 a proto3 (tienen semánticas distintas en torno a required/optional y valores por defecto).

¿Por qué no ejecuto protoc directamente y leo el error?

Deberías — protoc es la fuente de verdad. Pero sus errores apuntan a una ubicación cada vez, y una llave faltante puede cascadear en diez errores río abajo. El reparador sirve cuando quieres desbloquear todo el archivo en una pasada y luego relanzas protoc para confirmar. Piénsalo como un primer barrido, no un reemplazo.

¿Maneja esquemas grandes con muchos imports?

Sí, hasta unos pocos miles de líneas por petición. La reparación solo mira el archivo que pegas — no sigue las sentencias import ni descarga esquemas externos. Si tu esquema importa google/protobuf/timestamp.proto u otros tipos bien conocidos, esos imports se preservan tal cual.

Otras herramientas Protobuf

Reparar la sintaxis es el primer paso. Una vez que el esquema compile, estas herramientas se encargan del resto: