Entrada

Saída

O que é Protocol Buffers (Protobuf)?

Protocol Buffers (Protobuf) é um formato de serialização independente de linguagem e plataforma desenvolvido pelo Google. Arquivos .proto definem o esquema de mensagens e serviços e são muito usados com APIs gRPC.

O Formatador Protobuf normaliza a indentação (2 espaços por nível), corrige o alinhamento de blocos e remove espaços à direita — ajudando a manter arquivos de esquema .proto consistentes e legíveis. Consulte o guia de estilo Protobuf e o código-fonte no repositório GitHub do protobuf.

Como usar

1

Cole o conteúdo .proto

Cole o esquema Protocol Buffer no editor à esquerda ou clique em Carregar para abrir um arquivo .proto.

2

Formatação instantânea

O formatador corrige a indentação (2 espaços por nível), normaliza a estrutura dos blocos message e service e remove espaços à direita.

3

Copiar ou baixar

Use o botão Copiar para copiar o resultado ou Baixar para salvar como arquivo .proto.

Exemplo de formatação

Exemplo: Formatar uma definição de mensagem proto3

Entrada não formatada:

syntax="proto3";package api;message User{string name=1;int32 age=2;repeated string roles=3;bool active=4;}

Saída formatada:

syntax = "proto3";
package api;

message User {
  string name = 1;
  int32 age = 2;
  repeated string roles = 3;
  bool active = 4;
}

Perguntas frequentes

Qual é a diferença entre proto2 e proto3?

Proto3 é a sintaxe mais nova e recomendada. Remove regras required/optional, usa padrões mais simples e tem melhor suporte a JSON. O formatador suporta ambas as versões.

Posso usar para definições de serviço gRPC?

Sim. Definições gRPC usam sintaxe Protobuf padrão com blocos service e rpc, que o formatador trata corretamente.

O formatador valida a sintaxe Protobuf?

O formatador normaliza indentação e estrutura de blocos, mas não faz validação semântica completa. Use protoc para compilação e validação completas.

Qual estilo de indentação o formatador usa para arquivos .proto?

O formatador segue o guia de estilo oficial do Protobuf, que recomenda 2 espaços por nível de indentação. Blocos aninhados dentro de message, service e enum são todos indentados de forma consistente.

Ferramentas relacionadas