CHOPS NET IP es una biblioteca C ++ que hace que la programación de redes asíncronas sea divertida. O al menos, si no es divertido, hace que la programación de red sea más fácil y segura, sin sacrificar significativamente el rendimiento. CHOPS NET IP maneja las comunicaciones del protocolo de Internet (IP) que incluyen TCP, UDP y UDP Multi -Multi -Multi -MultiCast. Se escribe con modernos modernos modernos modernos de diseño y el último estándar (2017) C ++.
CHOPS NET IP no es como cualquier otra biblioteca de socket C ++ de alto nivel y de alto nivel.
CHOPS NET IP está en capas en la parte superior de la biblioteca de redes asíncronas ASIO, aprovechando la portabilidad y la funcionalidad que proporciona ASIO. Sin embargo, simplifica la programación de la red en comparación con la codificación contra la ASIO API, al tiempo que proporciona una escalabilidad fácil a través de las instalaciones asincrónicas.
Travis CI Build Status:
Rama maestra | Desarrollar rama |
GitHub Actions CI Build Status:
Última etiqueta:
La versión 1.0 está en desarrollo a partir de enero de 2020, en espera de mejoras de CMake, un tutorial integral y pruebas adicionales en múltiples compiladores y plataformas.
Las notas de lanzamiento y los próximos planes de desarrollo están disponibles aquí.
Este proyecto se distribuye bajo la licencia de software BOOST:
Para muchos desarrolladores de software, la programación de red asíncrona en C ++ no es fácil. Es complejo, tiene muchas dificultades y requiere diseñar el código C ++ de una manera que no sea natural, incluso para aquellos con años de experiencia. CHOPS NET IP ("C" Onnective "H" y creado "OP" enwork "s" a menudo, reding en el protocolo de Internet) simplifica la programación de redes asincrónicas y proporciona abstracciones útiles (y sabrosas!) Para muchos tipos de patrones de comunicación.
CHOPS NET IP está en capas en la parte superior de la biblioteca ASIO de Chris Kohlhoff (ver referencias), lo que permite ser portátil en muchos compiladores y plataformas. Cuando el C ++ Networking TS está estandarizado (posiblemente C ++ 23 pero más probable C ++ 26) CHOPS NET IP utilizará directamente las instalaciones de red de la biblioteca estándar C ++.
CHOPS NET IP simplifica el código de aplicación que procesa datos en múltiples conexiones TCP simultáneas o puntos finales UDP. Todas las operaciones de IP netas de CHOPS (desde el punto de vista de la aplicación) no tienen el tiempo (es decir, no hay métodos de bloqueo) y todas las operaciones de procesamiento de red se realizan de manera asincrónica.
Funcionalidad de IP neta de chuletas:
CHOPS NET IP está diseñado para que sea fácil y eficiente que una aplicación cree cientos (o miles) de conexiones de red y las maneje simultáneamente. En particular, no hay hilos o piscinas de hilos dentro de la IP de la red de chuls, y funciona bien con solo un hilo de aplicación que invoca el bucle de eventos (un ejecutor, en la terminología actual de C ++).
Entornos de ejemplo donde CHOPS NET IP es un buen ajuste:
Los programas de demostración de ejemplo están en el directorio /example .
El programa simple_chat_demo.cpp tiene una lista de los múltiples pasos para configurar el ejemplo de trabajo.
Una descripción detallada, una comparación de la biblioteca de socket C ++ y una pregunta frecuente están disponibles aquí.
C ++ 17 es la línea de base principal para este repositorio. Notas adicionales sobre posibles alternativas están disponibles aquí.
Dependencias externas de producción:
asio de Chris Kohlhoff. Tenga en cuenta que es la biblioteca ASIO independiente, no la versión Boost ASIO.utility-rack , que es un repositorio en la misma cuenta de GitHub que CHOPS NET IP.Prueba de dependencias externas:
Catch2 de Phil Nash para todos los escenarios de prueba. Hay encabezados de archivo único que se han copiado en el directorio third_party del repositorio de utility-rack de varios repositorios de GitHub y no requieren ninguna gestión de dependencia externa. Estos son:
expected-lite de Martin Moene.Ver referencias para obtener detalles adicionales.
CHOPS NET IP ha sido compilada y las pruebas se ejecutan en:
Siga los enlaces CI para entornos de compilación adicionales.
CHOPS NET IP es solo de encabezado, por lo que la instalación consiste en descargar o clonarse y configurar el compilador de compiladores incluye rutas adecuadamente. No se definen las macros de configuración de tiempo de compilación.
Consulte las referencias para obtener detalles sobre dependencias e inspiraciones para CHOPS NET IP.
La información de los miembros del equipo está disponible aquí.
Algunas "notas de acantilado" están disponibles aquí.