
Implementação leve de Protocol Buffers em ANSI C para microcontroladores e sistemas embarcados com restrição de memória, permitindo serialização e desserialização eficientes de dados estruturados.
Nanopb é uma implementação de Protocol Buffers com tamanho de código reduzido em C ANSI. É especialmente adequada para uso em microcontroladores, mas se adapta a qualquer sistema com restrição de memória.
Para usar a biblioteca nanopb, você precisa fazer duas coisas:
A maneira mais fácil de começar é estudar o projeto em "examples/simple". Ele contém um Makefile, que deve funcionar diretamente na maioria dos sistemas Linux. No entanto, para qualquer outro tipo de sistema de build, veja os passos manuais no README.txt nessa pasta.
O gerador nanopb é implementado como um plugin para o compilador protoc do próprio Google. Isso tem a vantagem de não haver necessidade de reimplementar a análise básica dos arquivos .proto. No entanto, isso significa que você precisa da biblioteca protobuf do Google para executar o gerador.
Se você baixou um pacote binário do nanopb (versão para Windows, Linux ou Mac OS X), o binário 'protoc' está incluído na pasta 'generator-bin'. Nesse caso, você está pronto para começar. Basta executar este comando:
generator-bin/protoc --nanopb_out=. myprotocol.proto
No entanto, se você estiver usando um checkout do git ou uma distribuição simples do código-fonte, precisará fornecer sua própria versão do protoc e da biblioteca protobuf do Google. No Linux, os pacotes necessários são protobuf-compiler e python-protobuf. No Windows, você pode compilar a biblioteca protobuf do Google a partir do código-fonte ou usar uma das distribuições binárias dela. Em ambos os casos, se você usar um protoc separado, é necessário informar manualmente o caminho para o gerador nanopb:
protoc --plugin=protoc-gen-nanopb=nanopb/generator/protoc-gen-nanopb ...
Se você quiser desenvolver ainda mais o núcleo do nanopb, ou verificar sua funcionalidade usando seu compilador e plataforma, você vai querer executar a suíte de testes. As regras de build para a suíte de testes são implementadas usando Scons, então você precisa tê-lo instalado. Para executar os testes:
cd tests
scons
Isso mostrará o progresso de vários casos de teste. Se a saída não terminar com um erro, os casos de teste foram bem-sucedidos.
Nota: o Mac OS X, por padrão, cria um alias de 'clang' como 'gcc', embora não suporte as mesmas opções de linha de comando que o gcc. Para executar os testes no Mac OS X, use: "scons CC=clang CXX=clang". A mesma forma pode ser usada para executar testes com diferentes compiladores em qualquer plataforma.