Framework RPC independente de linguagem, com um gerador de código que cria clientes e servidores interoperáveis em diversas linguagens de programação.
google/flatbuffers
Uma biblioteca de serialização multiplataforma que permite ler dados binários diretamente, sem precisar analisá-los ou descompactá-los antes.
Alternativa open source a:Protocol Buffers
- Estrelas
- 26,567
- Forks
- 3,712
- Issues abertas
- 333
- Último commit
- há 6 horas
O que é?
FlatBuffers é uma biblioteca de serialização projetada para usar a memória com eficiência. Os dados são armazenados em um buffer binário que pode ser acessado no próprio lugar, permitindo que as aplicações leiam os campos diretamente dos bytes serializados, sem desserializá-los primeiro em objetos. A biblioteca também mantém a compatibilidade com versões anteriores e posteriores à medida que os schemas evoluem.
Você descreve os dados em um arquivo de schema (.fbs) e executa o compilador flatc para gerar o código de acesso nas linguagens que usa. O repositório inclui bibliotecas de runtime e geração de código para C, C++, C#, Dart, Go, Java, JavaScript, Kotlin, Lua, PHP, Python, Rust, Swift, TypeScript e outras linguagens.
A biblioteca oferece suporte a Windows, macOS, Linux e Android, e funciona em qualquer plataforma com um compilador C++ recente (C++11 ou mais novo).
Recursos principais
- 01Acesse dados serializados diretamente, sem precisar analisá-los ou descompactá-los antes.
- 02Gera código de acesso para várias linguagens a partir de um único schema.
- 03Oferece compatibilidade com versões anteriores e posteriores entre versões do schema.
- 04Funciona em Windows, macOS, Linux e Android.
Casos de uso
- Transferir dados entre serviços ou componentes escritos em linguagens diferentes.
- Armazenar dados binários quando leituras rápidas e sem alocação de memória são importantes, como em jogos ou sistemas embarcados.
- Ler arquivos serializados grandes usando mapeamento de memória, sem carregá-los por completo.
Início rápido
- 1
Configure a compilação do flatc com CMake
cmake -G "Unix Makefiles" - 2
Compile o compilador flatc
make -j - 3
Escreva seu esquema (.fbs); consulte samples/monster.fbs como exemplo
- 4
Gere código para suas linguagens a partir do esquema
./flatc --cpp --rust monster.fbs
Antes de usar
- O README não oferece instalação do compilador flatc por um gerenciador de pacotes; é necessário compilá-lo a partir do código-fonte com CMake e um compilador C++.
Tópicos
Perguntas frequentes
- O que é flatbuffers?
- Uma biblioteca de serialização multiplataforma que permite ler dados binários diretamente, sem precisar analisá-los ou descompactá-los antes. FlatBuffers é uma biblioteca de serialização projetada para usar a memória com eficiência. Os dados são armazenados em um buffer binário que pode ser acessado no próprio lugar, permitindo que as aplicações leiam os campos diretamente dos bytes serializados, sem desserializá-los primeiro em objetos. A biblioteca também mantém a compatibilidade com versões anteriores e posteriores à medida que os schemas evoluem.
- flatbuffers é gratuito? Qual é a licença?
- flatbuffers é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- flatbuffers ainda é mantido?
- Manutenção ativa. O último commit de flatbuffers foi em 21 de out. de 2026.
- Para que posso usar flatbuffers?
- Transferir dados entre serviços ou componentes escritos em linguagens diferentes. Armazenar dados binários quando leituras rápidas e sem alocação de memória são importantes, como em jogos ou sistemas embarcados. Ler arquivos serializados grandes usando mapeamento de memória, sem carregá-los por completo.
- Como instalar flatbuffers?
- Configure a compilação do flatc com CMake: cmake -G "Unix Makefiles" Compile o compilador flatc: make -j Escreva seu esquema (.fbs); consulte samples/monster.fbs como exemplo Gere código para suas linguagens a partir do esquema: ./flatc --cpp --rust monster.fbs
- Onde consigo flatbuffers?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/google/flatbuffers
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Framework para criar aplicativos desktop multiplataforma com JavaScript, HTML e CSS, baseado em Node.js e Chromium.
Framework Go para criar apps desktop multiplataforma com frontend web (React, Vue, Svelte etc.) usando mecanismos de renderização nativos.
Editor de texto moderno e fácil de usar no terminal, distribuído como um único binário estático sem dependências e apresentado como sucessor do nano.
Um toolkit de GUI multiplataforma e uma API de apps para Go, para criar apps desktop e mobile com uma única base de código.
Uma biblioteca de formatação para C++ que oferece uma alternativa rápida e segura quanto aos tipos a C stdio e iostreams, implementando std::format do C++20.