CoderTools

Ferramenta Protocol Buffers

Codifique, decodifique e valide mensagens Protocol Buffers

Schema Proto

Schemas de Exemplo:

Entrada

Analise o schema e selecione um tipo de mensagem para gerar campos de formulário

Saída

Documentação Protocol Buffers

O que é Protocol Buffers?

Protocol Buffers (Protobuf) é um mecanismo extensível, neutro em relação à linguagem e plataforma, para serialização de dados estruturados, desenvolvido pelo Google. É menor, mais rápido e mais simples que XML e JSON para serialização de dados.

Recursos Principais

  • Neutro em relação à linguagem e plataforma
  • Menor e mais rápido que XML/JSON
  • Tipagem forte com definição de schema
  • Compatibilidade retroativa e futura
  • Geração automática de código
  • Codificação binária eficiente

Como Usar Esta Ferramenta

  1. Digite sua definição de schema .proto no editor de schema
  2. Clique em Analisar Schema para validar e analisar o schema
  3. Selecione o tipo de mensagem com o qual deseja trabalhar
  4. Para codificar: Digite dados JSON e clique em Codificar
  5. Para decodificar: Digite dados binários e clique em Decodificar
  6. Use Decodificação Bruta para analisar dados binários sem schema

Recursos da Ferramenta

Codificar

Converta dados JSON para formato binário Protocol Buffers. Suporta entrada baseada em formulário para fácil entrada de dados com validação de tipo.

Decodificar

Converta dados binários Protocol Buffers de volta para formato JSON legível. Suporta formatos de entrada Base64, Hex e hex estilo C.

Decodificação Bruta

Analise dados binários protobuf sem schema. Útil para depuração, engenharia reversa ou análise de mensagens desconhecidas.

Entrada de Formulário

Interface de formulário amigável que gera formulários de entrada baseados em seu schema. Suporta mensagens aninhadas, enums e campos repetidos.

Referência de Sintaxe Proto

Protocol Buffers usa uma sintaxe simples para definir tipos de mensagem:

syntax = "proto3";

message Person {
    string name = 1;
    int32 id = 2;
    string email = 3;
    
    enum PhoneType {
        MOBILE = 0;
        HOME = 1;
        WORK = 2;
    }
    
    message PhoneNumber {
        string number = 1;
        PhoneType type = 2;
    }
    
    repeated PhoneNumber phones = 4;
}
  • syntax: Especifica a versão do protobuf (proto2 ou proto3)
  • message: Define um tipo de mensagem com campos
  • field: Cada campo tem um tipo, nome e número único
  • enum: Define tipos de enumeração
  • repeated: Marca um campo como repetido (array/lista)
  • optional: Marca um campo como opcional (proto3)

Tipos Escalares

Protocol Buffers suporta vários tipos escalares:

Tipo Descrição Padrão
int32, int64Inteiros com sinal (codificação de comprimento variável)0
uint32, uint64Inteiros sem sinal0
sint32, sint64Inteiros com sinal com codificação ZigZag (eficiente para números negativos)0
fixed32, fixed64Inteiros sem sinal de largura fixa (4 ou 8 bytes)0
sfixed32, sfixed64Inteiros com sinal de largura fixa (4 ou 8 bytes)0
float, doubleNúmeros de ponto flutuante (32 ou 64 bit)0.0
boolValores booleanos (verdadeiro/falso)false
stringStrings de texto codificadas em UTF-8""
bytesDados binários arbitráriosempty

Tipos Wire

Protobuf usa tipos wire para determinar como ler valores de dados binários:

Tipo Wire Significado Usado Para
0Varintint32, int64, uint32, uint64, sint32, sint64, bool, enum
164-bitfixed64, sfixed64, double
2Length-delimitedstring, bytes, embedded messages, packed repeated
532-bitfixed32, sfixed32, float

Melhores Práticas

  • Use sintaxe proto3 para novos projetos - é mais simples e amplamente suportada
  • Mantenha os números de campo estáveis - nunca reutilize ou altere números para campos existentes
  • Use nomes de campo significativos que descrevam claramente os dados
  • Reserve números de campo 1-15 para campos usados com frequência (eles usam 1 byte)
  • Use a palavra-chave 'repeated' para arrays/listas de valores
  • Defina enums para campos que têm um conjunto fixo de valores possíveis

Perguntas Frequentes

O que é Protocol Buffers (Protobuf)?

Protocol Buffers é um mecanismo extensível, neutro em termos de linguagem e plataforma, para serializar dados estruturados. É semelhante ao JSON, mas menor, mais rápido e gera ligações de linguagem nativas. É amplamente utilizado em microsserviços gRPC.

Como usar esta ferramenta Protobuf online?

Primeiro, cole sua definição de esquema `.proto` no editor (ou carregue um exemplo). Clique em 'Analisar Esquema' e selecione um tipo de mensagem. Em seguida, alterne entre os modos 'Codificar' (JSON → Binário) e 'Decodificar' (Binário → JSON) para processar seus dados.

O que é 'Decodificação Bruta' (Raw Decode)?

A decodificação bruta permite inspecionar uma mensagem Protobuf binária mesmo sem o arquivo `.proto`. Ela analisa a estrutura binária e exibe números de campo, tipos de fio e valores, o que é incrivelmente útil para depuração ou engenharia reversa de pacotes desconhecidos.

Meus dados são processados com segurança?

Sim. Esta ferramenta é executada 100% no seu navegador usando JavaScript (protobuf.js). Seus esquemas, dados JSON e dados binários nunca são enviados para nossos servidores, garantindo a privacidade de suas informações confidenciais.

Casos de Uso Comuns

  • Comunicação entre serviços em microsserviços (gRPC)
  • Armazenamento de dados e cache
  • Arquivos de configuração
  • Protocolos de rede e APIs

Referências

Menu Rápido

Nenhuma ferramenta recente