Sobre o projeto

yojimbo é uma biblioteca de rede C++ pronta para produção, adaptada para jogos cliente/servidor com até 100 jogadores, com foco nas exigências de títulos multijogador competitivos, como jogos de tiro em primeira pessoa. Ela oferece autenticação criptograficamente segura por meio de tokens de conexão, gerenciamento de conexões cliente/servidor com timeouts, pacotes UDP criptografados e assinados, fragmentação e remontagem de pacotes, um sistema de bitpacker e serialização, mensagens não confiáveis e não ordenadas para dados sensíveis ao tempo, mensagens confiáveis e ordenadas com reenvio agressivo até a confirmação, suporte a blocos de dados maiores que o tamanho máximo de pacote anexados a mensagens confiáveis e ordenadas, e estimativas por conexão de latência, jitter, perda de pacotes e largura de banda enviada/recebida/confirmada. A biblioteca é single-threaded, exigindo que todas as funções de cliente e servidor sejam chamadas da mesma thread, e ambos os lados devem usar configurações idênticas (ClientServerConfig, canais e fábrica de mensagens). Ela é construída sobre as bibliotecas netcode, reliable e serialize do mesmo autor, Glenn Fiedler, e inclui libsodium e tlsf. O projeto é de código aberto sob a licença BSD 3-Clause, com contribuições bem-vindas via CONTRIBUTING.md e problemas de segurança relatados via SECURITY.md.