CHOPS NET IP é uma biblioteca C ++ que torna a programação de rede assíncrona divertida. Ou pelo menos, se não for divertido, facilita e seguras a programação de rede, sem sacrificar significativamente o desempenho. Chops Net IP lida com as comunicações do Protocolo da Internet (IP), incluindo TCP, UDP e Multicast UDP. É escrito usando idiomas modernos de design C ++ e o mais recente padrão C ++ (2017).
CHOPS NET IP não é como qualquer outra biblioteca de soquete C ++ de alto nível.
O CHOPS NET IP está em camadas na parte superior da Biblioteca de Networking Asíncronas da ASIO, aproveitando a portabilidade e a funcionalidade que o ASIO fornece. No entanto, simplifica a programação de rede em comparação com a codificação contra a API da ASIO, fornecendo fácil escalabilidade através das instalações assíncronas.
Status de construção do Travis CI:
Ramo mestre | Desenvolver ramificação |
Ações do Github CI Build Status:
Última tag:
A versão 1.0 está em desenvolvimento em janeiro de 2020, aguardando aprimoramentos de CMake, um tutorial abrangente e testes adicionais em vários compiladores e plataformas.
Notas de lançamento e os próximos planos de desenvolvimento estão disponíveis aqui.
Este projeto é distribuído sob a licença de software Boost:
Para muitos desenvolvedores de software, a programação de rede assíncrona no C ++ não é fácil. É complexo, tem muitas armadilhas e requer projetar código C ++ de uma maneira que não seja natural, mesmo para aqueles com anos de experiência. CHOPS NET IP ("C" ONNECTION "H" e Op "Op" s "S" Oftware, Retworking Over Internet Protocol) simplifica as abstrações de rede assíncrona e fornece abstrações úteis (e saborosas!) Para muitos tipos de padrões de comunicação.
O CHOPS NET IP está em camadas na parte superior da biblioteca ASIO de Chris Kohlhoff (ver referências), permitindo que ela seja portátil em muitos compiladores e plataformas. Quando a rede C ++ TS é padronizada (possivelmente C ++ 23, mas é mais provável que C ++ 26) CHOPS IP usará diretamente as instalações de rede da biblioteca padrão C ++.
CHOPS IP NET simplifica o código do aplicativo que processa dados em várias conexões TCP simultâneas ou terminais UDP. Todas as operações de IP da NET CHOPS (do ponto de vista do aplicativo) são sem espera (ou seja, não há métodos de bloqueio) e todas as operações de processamento de rede são realizadas de forma assíncrona.
CHOPS NET FUNCIONALIDADE:
O CHOPS NET IP foi projetado para facilitar e eficiente para um aplicativo criar centenas (ou milhares) de conexões de rede e lidar com elas simultaneamente. Em particular, não há threads ou pools de threads dentro do CHOPS NET IP e funciona bem com apenas um thread de aplicativo que está invocando o loop do evento (um executor, na terminologia C ++ atual).
Exemplo de ambientes em que as CHOPS NET IP é um bom ajuste:
Exemplo de programas de demonstração estão no diretório /example .
O programa simple_chat_demo.cpp possui uma listagem das várias etapas para configurar o exemplo de trabalho.
Uma visão geral detalhada, uma comparação de biblioteca de soquete C ++ e uma FAQ está disponível aqui.
C ++ 17 é a linha de base primária para este repositório. Notas adicionais sobre possíveis alternativas estão disponíveis aqui.
Dependências externas de produção:
asio de Chris Kohlhoff é necessária. Observe que é a biblioteca ASIO independente, não a versão do Boost ASIO.utility-rack , que é um repositório na mesma conta do GitHub que o CHOPS NET IP.Teste dependências externas:
Catch2 de Phil Nash é necessária para todos os cenários de teste. Existem cabeçalhos de arquivo único que foram copiados no diretório third_party do repositório utility-rack de vários repositórios do GitHub e não requerem gerenciamento de dependência externa. Estes são:
expected-lite de Martin Moene.Consulte Referências para obter detalhes adicionais.
CHOPS NET IP foi compilado e os testes são executados em:
Siga os links de IC para obter ambientes de construção adicionais.
O CHOPS NET IP é somente para o cabeçalho, portanto, a instalação consiste em baixar ou clonar e configurar o compilador incluir caminhos adequadamente. Nenhuma configuração de tempo de compilação macros é definida.
Consulte Referências para obter detalhes sobre dependências e inspirações para o CHOPS NET IP.
As informações do membro da equipe estão disponíveis aqui.
Algumas "notas de penhasco" estão disponíveis aqui.