CHOPS Net IP est une bibliothèque C ++ qui rend le plaisir de programmation de réseautage asynchrone. Ou du moins si ce n'est pas amusant, il rend la programmation réseau plus facile et plus sûre, sans sacrifier considérablement les performances. CHOPS Net IP gère les communications du protocole Internet (IP), y compris la multidiffusion TCP, UDP et UDP. Il est écrit en utilisant les idiomes de conception C ++ modernes et la dernière (2017) standard C ++.
CHOPS Net IP ne ressemble à aucune autre bibliothèque de socket C ++ à usage général de haut niveau.
CHOPS Net IP est superposé sur la bibliothèque de réseautage asynchrone ASIO, profitant de la portabilité et de la fonctionnalité fourni par Asio. Cependant, il simplifie la programmation réseau par rapport au codage par rapport à l'API ASIO, tout en offrant une évolutivité facile à travers les installations asynchrones.
Statut de construction de Travis CI:
Master Branch | Développer la branche |
GitHub Actions CI Build Status:
Dernière étiquette:
La version 1.0 est en cours de développement en janvier 2020, en attendant les améliorations CMake, un tutoriel complet et des tests supplémentaires sous plusieurs compilateurs et plateformes.
Les notes de sortie et les plans de développement à venir sont disponibles ici.
Ce projet est distribué dans le cadre de la licence de logiciel Boost:
Pour de nombreux développeurs de logiciels, la programmation réseau asynchrone en C ++ n'est pas facile. Il est complexe, a de nombreux pièges et nécessite la conception du code C ++ d'une manière qui n'est pas naturelle, même pour ceux qui ont des années d'expérience. CHOPS NET IP ("C" ONNECTIVE "H" et Craft "OP" Enwork "S" Oftware, mise en réseau sur le protocole Internet) simplifie la programmation réseau asynchrone et fournit des abstractions utiles (et savoureuses!) Pour de nombreux types de modèles de communication.
CHOPS Net IP est superposé en plus de la bibliothèque ASIO de Chris Kohlhoff (voir références), ce qui lui permet d'être portable sur de nombreux compilateurs et plates-formes. Lorsque le C ++ Networking TS est standardisé (peut-être C ++ 23 mais plus probablement C ++ 26), IP Net utilisera directement les installations de mise en réseau de la bibliothèque standard C ++.
CHOPS Net IP simplifie le code d'application qui traite les données sur plusieurs connexions TCP simultanées ou points de terminaison UDP. Toutes les opérations IP Net CHOPS (à partir du point de vue de l'application) ne sont pas d'attente (c'est-à-dire qu'il n'y a pas de méthodes de blocage) et toutes les opérations de traitement du réseau sont effectuées de manière asynchrone.
Fonctionnalité IP Net CHOPS:
CHOPS Net IP est conçu pour faciliter la création d'une application pour créer des centaines (ou des milliers) de connexions réseau et les gérer simultanément. En particulier, il n'y a pas de threads ou de pools de threads dans CHOPS Net IP, et il fonctionne bien avec un seul thread d'application invoquant la boucle d'événement (un exécuteur testamentaire, dans la terminologie C ++ actuelle).
Exemples d'environnements où les côtelettes net IP sont un bon ajustement:
Les exemples de programmes de démonstration sont dans le répertoire /example .
Le programme simple_chat_demo.cpp a une liste des multiples étapes à configurer l'exemple de travail.
Un aperçu détaillé, une comparaison de bibliothèque de socket C ++ et une FAQ sont disponibles ici.
C ++ 17 est la base principale de ce référentiel. Des notes supplémentaires sur les alternatives possibles sont disponibles ici.
Production Dépendances externes:
asio de Chris Kohlhoff est requise. Notez qu'il s'agit de la bibliothèque ASIO autonome, pas la version Boost Asio.utility-rack , qui est un référentiel dans le même compte GitHub que les CHOPS Net IP.Test des dépendances externes:
Catch2 de Phil Nash est requise pour tous les scénarios de test. Il existe des en-têtes de fichiers uniques qui ont été copiés dans le répertoire third_party du référentiel utility-rack à partir de divers référentiels GitHub et ne nécessitent aucune gestion de dépendance externe. Ce sont:
expected-lite de Martin Moene.Voir références pour plus de détails.
CHOPS Net IP a été compilé et les tests s'exécutent:
Suivez les liens CI pour des environnements de construction supplémentaires.
CHOPS Net IP est uniquement en tête, donc l'installation consiste à télécharger ou à cloner et régler le compilateur inclut les chemins de vue de manière appropriée. Aucune macros de configuration de temps de compilation n'est définie.
Voir les références pour plus de détails sur les dépendances et les inspirations pour CHOPS Net IP.
Les informations des membres de l'équipe sont disponibles ici.
Quelques "notes de falaise" sont disponibles ici.