CHOPS NET IP adalah perpustakaan C ++ yang membuat pemrograman jaringan asinkron menjadi menyenangkan. Atau setidaknya jika tidak menyenangkan, itu membuat pemrograman jaringan lebih mudah dan lebih aman, tanpa mengorbankan kinerja secara signifikan. CHOPS NET IP menangani komunikasi Internet Protocol (IP) termasuk TCP, UDP, dan UDP Multicast. Ini ditulis menggunakan idiom desain C ++ modern dan standar C ++ terbaru (2017).
CHOPS NET IP tidak seperti pustaka soket C ++ tujuan umum lainnya.
CHOPS NET IP dilapisi di atas pustaka jaringan ASYNCHRONOUS, mengambil keuntungan dari portabilitas dan fungsionalitas yang disediakan ASIO. Namun, ini menyederhanakan pemrograman jaringan dibandingkan dengan pengkodean terhadap API ASIO, sambil memberikan skalabilitas yang mudah melalui fasilitas asinkron.
Status Bangun Travis CI:
Cabang Master | Kembangkan Cabang |
Tindakan GitHub CI Status Build:
Tag terbaru:
Rilis 1.0 sedang dikembangkan pada Januari 2020, menunggu peningkatan CMake, tutorial yang komprehensif, dan pengujian tambahan di bawah beberapa kompiler dan platform.
Catatan rilis dan rencana pengembangan yang akan datang tersedia di sini.
Proyek ini didistribusikan di bawah lisensi Boost Software:
Bagi banyak pengembang perangkat lunak, pemrograman jaringan asinkron di C ++ tidak mudah. Ini rumit, memiliki banyak jebakan, dan membutuhkan desain kode C ++ dengan cara yang tidak alami, bahkan bagi mereka yang memiliki pengalaman bertahun -tahun. CHOPS NET IP ("C" Onnective "H" andcrafted "op" enwork "s" Oftware, jaringan melalui protokol internet) menyederhanakan pemrograman jaringan asinkron dan memberikan abstraksi yang berguna (dan lezat!) Untuk banyak jenis pola komunikasi.
CHOPS NET IP dilapisi di atas Perpustakaan ASIO Chris Kohlhoff (lihat referensi) yang memungkinkannya menjadi portabel di banyak kompiler dan platform. Ketika C ++ Networking TS distandarisasi (mungkin C ++ 23 tetapi lebih mungkin C ++ 26) CHOPS NET IP akan secara langsung menggunakan fasilitas jaringan pustaka standar C ++.
CHOPS NET IP menyederhanakan kode aplikasi yang memproses data pada beberapa koneksi TCP simultan atau titik akhir UDP. Semua operasi IP NET CHOPS (dari sudut pandang aplikasi) tidak wait (yaitu tidak ada metode pemblokiran) dan semua operasi pemrosesan jaringan dilakukan secara tidak sinkron.
Fungsionalitas CHOPS NET IP:
CHOPS NET IP dirancang untuk membuatnya mudah dan efisien bagi aplikasi untuk membuat ratusan (atau ribuan) koneksi jaringan dan menanganinya secara bersamaan. Secara khusus, tidak ada utas atau kumpulan utas di dalam IP Net CHOPS, dan berfungsi dengan baik dengan hanya satu utas aplikasi yang memohon loop acara (seorang pelaksana, dalam terminologi C ++ saat ini).
Contoh lingkungan di mana IP Net Chops sangat cocok:
Contoh program demo ada di direktori /example .
Program simple_chat_demo.cpp memiliki daftar beberapa langkah untuk mengatur contoh yang berfungsi.
Tinjauan terperinci, perbandingan perpustakaan soket C ++, dan FAQ tersedia di sini.
C ++ 17 adalah garis dasar utama untuk repositori ini. Catatan tambahan tentang kemungkinan alternatif tersedia di sini.
Produksi dependensi eksternal:
asio Chris Kohlhoff diperlukan. Perhatikan bahwa itu adalah perpustakaan ASIO yang berdiri sendiri, bukan versi Boost ASIO.utility-rack , yang merupakan repositori di akun GitHub yang sama dengan CHOPS NET IP.Uji dependensi eksternal:
Catch2 Phil Nash diperlukan untuk semua skenario uji. Ada header file tunggal yang telah disalin ke direktori third_party dari repositori utility-rack dari berbagai repositori gitub dan tidak memerlukan manajemen ketergantungan eksternal. Ini adalah:
expected-lite .Lihat referensi untuk detail tambahan.
IP CHOPS NET telah dikompilasi dan tes dijalankan pada:
Ikuti tautan CI untuk lingkungan build tambahan.
CHOPS NET IP hanya header, sehingga instalasi terdiri dari pengunduhan atau kloning dan pengaturan kompiler termasuk jalur dengan tepat. Tidak ada konfigurasi waktu kompilasi makro yang didefinisikan.
Lihat Referensi untuk detail tentang dependensi dan inspirasi untuk IP NET CHOPS.
Informasi anggota tim tersedia di sini.
Beberapa "Catatan Tebing" tersedia di sini.