Chops Net IP ist eine C ++ - Bibliothek, die asynchrone Netzwerkprogrammierungen macht. Oder zumindest, wenn nicht Spaß, erleichtert die Netzwerkprogrammierung einfacher und sicherer, ohne die Leistung erheblich zu opfern. Chops Net IP übernimmt die IP -Kommunikation (Internet Protocol), einschließlich TCP, UDP und UDP Multicast. Es wird mit modernen C ++ -Design -Idioms und dem neuesten (2017) C ++ - Standard geschrieben.
Chops Net IP ist nicht wie eine andere C ++ -Socket-Bibliothek auf hoher Ebene, Allzwecke.
Chops Net IP ist über die ASIO ASYNCHRON NETWORKKING -Bibliothek überlagert und nutzt die Portabilität und Funktionalität, die ASIO bietet. Es vereinfacht jedoch die Netzwerkprogrammierung im Vergleich zur Codierung gegen die ASIO -API und bietet gleichzeitig eine einfache Skalierbarkeit durch die asynchronen Einrichtungen.
Travis CI Build Status:
Master -Zweig | Branch |
Github -Aktionen CI -Erstellung Status:
Neueste Tag:
Release 1.0 befindet sich im Januar 2020 und wartet auf CMake -Verbesserungen, ein umfassendes Tutorial und zusätzliche Tests unter mehreren Compilern und Plattformen.
Versionshinweise und bevorstehende Entwicklungspläne finden Sie hier.
Dieses Projekt wird unter der Boost -Software -Lizenz verteilt:
Für viele Softwareentwickler ist die asynchrone Netzwerkprogrammierung in C ++ nicht einfach. Es ist komplex, hat viele Fallstricke und erfordert das Entwerfen von C ++ - Code auf eine Weise, die selbst für jahrelange Erfahrung nicht natürlich ist. Chops Net IP ("C" Onnective "H" und erstellt "OP" enwork "s" OFTware, Netzwerk über das Internetprotokoll) vereinfacht die asynchrone Netzwerkprogrammierung und bietet nützliche (und leckere!) Abstraktionen für viele Arten von Kommunikationsmustern.
Das Chops Net IP ist über die ASIO -Bibliothek von Chris Kohlhoff (siehe Referenzen) überlagert, sodass es auf vielen Compilern und Plattformen tragbar ist. Wenn das C ++ - Networking TS TS standardisiert ist (möglicherweise C ++ 23, aber wahrscheinlicher C ++ 26), wird die Net -IP direkt die Netzwerkeinrichtungen der C ++ - Standardbibliothek verwendet.
Chops Net IP vereinfacht den Anwendungscode, der Daten zu mehreren gleichzeitigen TCP -Verbindungen oder UDP -Endpunkten verarbeitet. Alle Chops-Netto-IP-Operationen (aus der Anwendungsansicht) sind no-wait (dh es gibt keine Blockierungsmethoden) und alle Netzwerkverarbeitungsvorgänge werden asynchron durchgeführt.
Chops Net IP -Funktionalität:
Chops Net IP ist so konzipiert, dass es einer Anwendung einfach und effizient ist, Hunderte (oder Tausende) Netzwerkverbindungen zu erstellen und gleichzeitig zu verarbeiten. Insbesondere gibt es keine Threads oder Thread -Pools innerhalb von Chops Net IP, und es funktioniert gut, wenn nur ein Anwendungs -Thread auf die Ereignisschleife (ein Executor in der aktuellen C ++ - Terminologie) aufgerufen wird.
Beispielumgebungen, in denen Chops Net IP gut passt:
Beispiel -Demo -Programme befinden sich im Verzeichnis /example .
Das Programm simple_chat_demo.cpp enthält eine Auflistung der mehreren Schritte, um ein Arbeitsbeispiel einzurichten.
Ein detaillierter Überblick, ein C ++ - Socket -Bibliotheksvergleich und eine FAQ finden Sie hier.
C ++ 17 ist die Hauptbasis für dieses Repository. Weitere Hinweise zu möglichen Alternativen finden Sie hier.
Produktion externe Abhängigkeiten:
asio -Bibliothek von Chris Kohlhoff ist erforderlich. Beachten Sie, dass es sich um die eigenständige ASIO-Bibliothek handelt, nicht die Boost ASIO-Version.utility-rack -Bibliothek, die ein Repository im selben GitHub-Konto wie Chops Net IP ist.Testen Sie externe Abhängigkeiten:
Catch2 -Bibliothek von Phil Nash ist für alle Testszenarien erforderlich. Es gibt einzelne Datei-Header, die in das Verzeichnis third_party des utility-rack -Repositorys aus verschiedenen Github-Repositories kopiert wurden und keine externe Abhängigkeitsführung erfordern. Diese sind:
expected-lite Bibliothek.Weitere Informationen finden Sie unter Referenzen.
Chops Net IP wurde zusammengestellt und Tests durchgeführt:
Befolgen Sie die CI -Links für zusätzliche Build -Umgebungen.
Chops Net IP ist nur Header. Daher besteht die Installation aus dem Herunterladen oder Klonen und Klonen und Einstellen von Compiler integrieren die Pfade angemessen. Es werden keine Kompilierungszeitkonfigurationsmakros definiert.
Referenzen finden Sie in Abhängigkeiten und Inspirationen für Chops Net IP.
Hier finden Sie Informationen zur Teammitglied.
Hier sind einige "Cliff Notes" erhältlich.