Chops Net IPは、非同期ネットワーキングプログラミングを楽しくするC ++ライブラリです。または、少なくとも楽しくない場合は、パフォーマンスを大幅に犠牲にすることなく、ネットワークプログラミングをより簡単かつ安全にします。 TCP、UDP、UDPマルチキャストを含むNet IPは、インターネットプロトコル(IP)通信を処理します。最新のC ++デザインイディオムと最新(2017)C ++標準を使用して書かれています。
チョップネットIPは、他の高レベルの汎用C ++ソケットライブラリとは異なります。
チョップネットIPは、ASIOが提供する携帯性と機能を活用して、ASIOの非同期ネットワーキングライブラリの上に階層化されています。ただし、ASIO APIに対するコーディングと比較してネットワークプログラミングを簡素化し、非同期施設を通じて簡単なスケーラビリティを提供します。
Travis CIビルドステータス:
マスターブランチ|ブランチを開発|
GitHubアクションCIステータスのビルド:
最新のタグ:
リリース1.0は2020年1月の時点で開発中で、CMAKEの機能強化、包括的なチュートリアル、および複数のコンパイラとプラットフォームの下での追加テストを待っています。
リリースノートと今後の開発計画はこちらから入手できます。
このプロジェクトは、Boost Softwareライセンスの下で配布されます。
多くのソフトウェア開発者にとって、C ++の非同期ネットワークプログラミングは簡単ではありません。複雑で、多くの落とし穴があり、長年の経験を持つ人でさえ、自然ではない方法でC ++コードを設計する必要があります。 Net IP( "c" Onnective "H"およびCrafted "Op" Enwork "s" oftware、インターネットプロトコルを介したネットワーク)は、非同期ネットワークプログラミングを簡素化し、多くのタイプのコミュニケーションパターンに便利な(そしておいしい!)抽象化を提供します。
Chops Net IPは、Chris KohlhoffのASIOライブラリの上に階層化されており(参考文献を参照)、多くのコンパイラやプラットフォームでポータブルにすることができます。 C ++ネットワーキングTSが標準化されている場合(C ++ 23の可能性が高いが、C ++ 26のCHOPS Net IPがC ++標準ライブラリのネットワーキング機能を直接使用します。
CHOPS Net IPは、複数の同時のTCP接続またはUDPエンドポイントでデータを処理するアプリケーションコードを簡素化します。すべてのCHOPSネットIP操作(アプリケーションの視点から)は、非難(つまり、ブロッキング方法はありません)であり、すべてのネットワーク処理操作は非同期に実行されます。
ネットIP機能をチョップ:
CHOPSネットIPは、アプリケーションが数百(または数千)のネットワーク接続を作成し、同時に処理できるように簡単かつ効率的になるように設計されています。特に、Chops Net IP内にスレッドまたはスレッドプールはありません。また、イベントループ(現在のC ++用語でエグゼクティア)を呼び出すアプリケーションスレッドは1つだけでうまく機能します。
Net IPをチョップする環境の例は適しています:
デモプログラムの例は/exampleディレクトリにあります。
simple_chat_demo.cppプログラムには、作業例を設定するための複数のステップのリストがあります。
詳細な概要、C ++ソケットライブラリの比較、およびFAQがこちらから入手できます。
C ++ 17は、このリポジトリの主要なベースラインです。可能な代替案に関する追加のメモはこちらから入手できます。
生産外部依存関係:
asioライブラリのバージョン1.13(またはそれ以降)が必要です。 Boost ASIOバージョンではなく、スタンドアロンASIOライブラリであることに注意してください。utility-rackライブラリ。外部依存関係をテストします:
Catch2ライブラリのバージョン2.8.0(または後で)は、すべてのテストシナリオに必要です。さまざまなGitHubリポジトリからutility-rackリポジトリのthird_partyディレクトリにコピーされた単一のファイルヘッダーがあり、外部依存関係管理を必要としません。これらは:
expected-liteライブラリ。詳細については、参照を参照してください。
チョップネットIPがコンパイルされ、テストが実行されます。
追加のビルド環境については、CIリンクに従ってください。
チョップネットIPはヘッダーのみであるため、インストールはダウンロードまたはクローン化と設定コンパイラにパスを適切に含めることで構成されています。コンパイル時間構成マクロは定義されていません。
チョップネットIPの依存関係とインスピレーションの詳細については、参照を参照してください。
チームメンバー情報はこちらから入手できます。
ここでは、いくつかの「クリフノート」が入手できます。