Introdução ao NNG
O NNG (nanomsg-next-generation) é uma biblioteca de mensageria leve e sem broker (brokerless), projetada como a evolução do nanomsg e do ZeroMQ. Seu objetivo principle é abstrair a complexidade da comunicação de rede, permitindo que os desenvolvedores foquem na lógica de negócios. A biblioteca oferece padrões de comunicação como Publicar/Assinar (Pub/Sub), Solicitação/Resposta (Req/Rep) e descoberta de serviços através de uma API simplificada.
Pré-requisitos e Dependências
Para cmopilar o NNG a partir do código-fonte, o ambiente de desenvolvimento deve atender aos seguintes requisitos:
- Compilador C compatível com o padrão C99 (GCC, Clang, MSVC).
- CMake (versão 3.13 ou superior) para gerenciar o processo de build.
- Mbed TLS (opcional, mas necessário caso deseje habilitar o suporte a criptografia TLS 1.2).
Processo de Compilação
O processo de construção utiliza o CMake e pode ser adaptado para diferentes geradores, como Ninja ou Make.
1. Obtenção do Código-Fonte
Clone o repositório oficial e acesse o diretório do projeto:
git clone https://github.com/nanomsg/nng.git
cd nng
2. Preparação do Ambiente de Build
Crie um diretório isolado para os artefatos de compilação. Neste exemplo, utilizaremos o nome output_build para manter a organização do repositório original:
mkdir output_build
cd output_build
3. Configuração com CMake
Execute o CMake para gerar os arquivos de compilação. Se o gerador Ninja estiver disponível e for o preferido, utilize a flag -G. Caso contrário, o Make padrão será usado.
Usando Ninja (recomendado para maior velocidade) e habilitando TLS:
cmake -G Ninja -DNNG_ENABLE_TLS=ON ..
Usando Makefiles padrão:
cmake -DNNG_ENABLE_TLS=ON ..
Nota: A flag -DNNG_ENABLE_TLS=ON foi adicionada para demonstrar como habilitar o suporte a TLS, assumindo que o Mbed TLS esteja instalado no sistema.
4. Compilação e Testes
Inicie a compilação dos binários e bibliotecas. Para o Make, é recomendável usar compilação paralela:
# Para Ninja
ninja
# Para Make
make -j$(nproc)
Após a compilação bem-sucedida, execute a suíte de testes integrada para validar a integridade da biblioteca:
# Para Ninja
ninja test
# Para Make
make test
5. Instalação no Sistema
Por fim, instale os cabeçalhos e a biblioteca compilada nos diretórios do sistema (pode ser necessário privilégios de superusuário):
# Para Ninja
ninja install
# Para Make
sudo make install
Configuração em Tempo de Execução
Diferente de sistemas que exigem arquivos de configuração externos, o NNG é configurado inteiramente via código. Após a instalação, basta incluir os cabeçalhos do NNG no seu projeto C/C++ e utilizar as funções da API para instanciar sockets, definir topologias (como NNG_PROTO_PUB0 ou NNG_PROTO_REP0) e estabelecer os listeners ou dialers para os protocolos de transporte desejados (TCP, IPC, inproc, etc.).