Chops Net IP是一個C ++庫,它使異步網絡編程變得有趣。或者至少在不有趣的情況下,它可以使網絡編程更加輕鬆,更安全,而不會顯著犧牲性能。 Chops Net IP處理Internet協議(IP)通信,包括TCP,UDP和UDP Multicast。它是使用現代C ++設計成語和最新(2017)C ++標準編寫的。
Chops Net IP不像任何其他高級通用C ++套接字庫。
Chops Net IP利用ASIO提供的可移植性和功能,將IP分層放在ASIO異步網絡庫的頂部。但是,與針對ASIO API進行編碼相比,它簡化了網絡編程,同時通過異步設施提供了簡單的可擴展性。
Travis CI構建狀態:
主分支|開發分支|
GitHub動作CI構建狀態:
最新標籤:
截至2020年1月,第1.0版正在開發,等待CMAKE增強功能,全面的教程以及在多個編譯器和平台下進行的其他測試。
發行說明和即將發布的開發計劃可在此處提供。
該項目根據Boost軟件許可分配:
對於許多軟件開發人員來說,C ++中的異步網絡編程並不容易。它很複雜,有很多陷阱,並且需要以不自然的方式設計C ++代碼,即使對於那些經驗多年的人也是如此。將NET IP(“ C” Onnosever“ H”和Cruptived的“ Op” enWork“ oftware”,通過Internet協議進行網絡)簡化了異步網絡編程,並為許多類型的通信模式提供了有用的(和美味的!)抽象。
Chops Net IP分層位於Chris Kohlhoff的ASIO庫(請參閱參考文獻)的頂部,使其可以在許多編譯器和平台上便攜。當C ++網絡TS被標準化時(可能是C ++ 23,更可能C ++ 26),排骨淨IP將直接使用C ++標準庫的網絡設施。
Chops Net IP簡化了應用程序代碼,該代碼在多個同時進行TCP連接或UDP端點上處理數據。所有印章淨IP操作(從應用程序角度來看)是不在等(即沒有阻止方法),並且所有網絡處理操作均異步執行。
碎片淨IP功能:
Chops Net IP旨在使應用程序可以輕鬆有效地創建數百(或數千個)網絡連接並同時處理它們。特別是,在作用網絡IP中沒有線程或線程池,它僅與一個應用程序線程一起調用事件循環(當前C ++術語中的執行程序),它可以很好地工作。
示例環境中的封閉淨知識IP非常合適:
示例演示程序在/example目錄中。
simple_chat_demo.cpp程序具有多個設置工作示例的步驟的列表。
詳細的概述,C ++套接字庫比較和常見問題解答。
C ++ 17是該存儲庫的主要基線。有關可能的替代方案的其他註釋。
生產外部依賴性:
asio庫1.13版(或更高版本)。請注意,它是獨立的ASIO庫,而不是Boost ASIO版本。utility-rack庫,該庫是與Chops Net IP相同的GitHub帳戶中的存儲庫。測試外部依賴性:
Catch2庫的2.8.0版(或更高版本)。從各個github存儲庫中,有一些單個文件標頭已復製到utility-rack存儲庫的third_party目錄中,並且不需要任何外部依賴關係管理。這些都是:
expected-lite圖書館。有關其他詳細信息,請參見參考。
Chops Net IP已被編譯,測試進行了:
請按照CI鏈接進行其他構建環境。
Chops Net IP僅是標頭,因此安裝包括下載或克隆和設置編譯器適當地包含路徑。沒有定義編譯時間配置宏。
有關依賴性和作品的詳細信息,請參見參考。
團隊成員信息可在此處獲得。
這裡有一些“懸崖筆記”。