Sobre el proyecto

yojimbo es una librería de red en C++ lista para producción, adaptada para juegos cliente/servidor con hasta 100 jugadores, centrándose en las demandas de títulos multijugador competitivos como los juegos de disparos en primera persona. Ofrece autenticación criptográficamente segura mediante tokens de conexión, gestión de conexiones cliente/servidor con tiempos de espera, paquetes UDP cifrados y firmados, fragmentación y reensamblaje de paquetes, un sistema de empaquetado de bits y serialización, mensajes no confiables y desordenados para datos sensibles al tiempo, mensajes confiables y ordenados con reenvío agresivo hasta el acuse de recibo, soporte para bloques de datos más grandes que el tamaño máximo de paquete adjuntos a mensajes confiables y ordenados, y estimaciones por conexión de latencia, fluctuación, pérdida de paquetes y ancho de banda enviado/recibido/confirmado. La librería es de un solo hilo, lo que requiere que todas las funciones del cliente y del servidor se llamen desde el mismo hilo, y ambos lados deben usar configuraciones idénticas (ClientServerConfig, canales y fábrica de mensajes). Está construida sobre las librerías netcode, reliable y serialize del mismo autor, Glenn Fiedler, e incluye libsodium y tlsf. El proyecto es de código abierto bajo la licencia BSD de 3 cláusulas, con contribuciones bienvenidas a través de CONTRIBUTING.md y problemas de seguridad reportados mediante SECURITY.md.