Uma linguagem declarativa de schemas que gera modelos de dados type-safe e código RPC para TypeScript, Python, Java, Go, C++ e outras linguagens a partir de um único arquivo .skir.
protocolbuffers/protobuf
Formato e toolchain da Google, independente de linguagem e plataforma, para serializar dados estruturados, com o compilador protoc e runtimes para várias linguagens.
- Estrelas
- 72,151
- Forks
- 16,358
- Issues abertas
- 371
- Último commit
- há 22 horas
O que é?
Protocol Buffers (protobuf) é um mecanismo para serializar dados estruturados, independente de linguagem de programação e plataforma. Os desenvolvedores descrevem os dados em arquivos .proto, e o compilador protoc gera código para ler e gravar essas mensagens na linguagem de destino.
O repositório contém o compilador de protocolos, escrito em C++, além do runtime de C++ e dos arquivos .proto principais distribuídos com o projeto. Bibliotecas de runtime para Java, Python, Objective-C, C#, Ruby, PHP e outras linguagens ficam em subdiretórios ou em repositórios irmãos vinculados, como protobuf-go e protobuf-javascript. As versões incluem binários pré-compilados do protoc para quem não usa C++, e a documentação explica configurações com Bazel, Bzlmod e WORKSPACE.
O projeto é amplamente usado como formato de intercâmbio em sistemas RPC e como alternativa compacta a formatos de texto para armazenar registros estruturados.
Recursos principais
- 01Define esquemas de mensagens em arquivos .proto independentes de linguagem.
- 02protoc gera código de serialização para várias linguagens de destino.
- 03Oferece runtimes para C++, Java, Python, Go, C#, Ruby e outras linguagens.
- 04Binários pré-compilados do protoc são publicados nas versões do GitHub.
- 05Oferece suporte a builds com Bazel, Bzlmod e WORKSPACE legado.
Casos de uso
- Definir contratos de dados compartilhados entre serviços escritos em linguagens diferentes.
- Serializar mensagens de solicitação e resposta de RPC para APIs no estilo gRPC.
- Armazenar registros estruturados de forma compacta quando um formato de texto seria grande demais ou lento para analisar.
Início rápido
- 1
Baixe um binário pré-compilado do protoc na página de releases do GitHub
- 2
Siga os tutoriais de primeiros passos no guia do desenvolvedor
Antes de usar
- Nos metadados, a licença está listada como NOASSERTION, então os termos da licença não estão claros.
- O estado mais recente da branch main pode apresentar problemas devido a alterações incompatíveis; fixe uma release para obter builds estáveis.
- Usuários de C++ e quem precisar modificar o código deve compilar o protoc a partir do código-fonte, o que exige mais esforço.
Em coleções
Tópicos
Perguntas frequentes
- O que é protobuf?
- Formato e toolchain da Google, independente de linguagem e plataforma, para serializar dados estruturados, com o compilador protoc e runtimes para várias linguagens. Protocol Buffers (protobuf) é um mecanismo para serializar dados estruturados, independente de linguagem de programação e plataforma. Os desenvolvedores descrevem os dados em arquivos .proto, e o compilador protoc gera código para ler e gravar essas mensagens na linguagem de destino.
- protobuf é gratuito? Qual é a licença?
- protobuf é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- protobuf ainda é mantido?
- Manutenção ativa. O último commit de protobuf foi em 6 de nov. de 2026.
- Para que posso usar protobuf?
- Definir contratos de dados compartilhados entre serviços escritos em linguagens diferentes. Serializar mensagens de solicitação e resposta de RPC para APIs no estilo gRPC. Armazenar registros estruturados de forma compacta quando um formato de texto seria grande demais ou lento para analisar.
- Como instalar protobuf?
- Baixe um binário pré-compilado do protoc na página de releases do GitHub Siga os tutoriais de primeiros passos no guia do desenvolvedor
- Onde consigo protobuf?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/protocolbuffers/protobuf
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Framework RPC independente de linguagem, com um gerador de código que cria clientes e servidores interoperáveis em diversas linguagens de programação.
Uma codificação compacta e legível por humanos para dados JSON, criada para reduzir o uso de tokens ao enviar dados estruturados em prompts para LLMs.
Transformer de TypeScript que compila tipos puros em validadores de runtime, serializadores JSON, codecs de Protocol Buffer e geradores de dados aleatórios.
Framework RPC em C++ baseado no mecanismo Workflow da Sogou, compatível com os protocolos SRPC, bRPC, Thrift e tRPC em Linux, macOS e Windows.
Uma biblioteca de serialização multiplataforma que permite ler dados binários diretamente, sem precisar analisá-los ou descompactá-los antes.