Об этом проекте

yojimbo — это готовая к промышленной эксплуатации C++ библиотека для сетевых игр с архитектурой клиент/сервер, рассчитанная на до 100 игроков и ориентированная на требования соревновательных многопользовательских проектов, таких как шутеры от первого лица. Она предлагает криптографически стойкую аутентификацию через connect tokens, управление соединениями клиент/сервер с тайм-аутами, шифрованные и подписанные UDP-пакеты, фрагментацию и сборку пакетов, систему bitpacker и сериализации, ненадёжные неупорядоченные сообщения для данных, критичных ко времени, надёжные упорядоченные сообщения с агрессивной повторной отправкой до подтверждения, поддержку блоков данных больше максимального размера пакета, прикрепляемых к надёжным упорядоченным сообщениям, а также оценки по каждому соединению для задержки, джиттера, потерь пакетов и пропускной способности отправленных/полученных/подтверждённых данных. Библиотека однопоточная: все клиентские и серверные функции должны вызываться из одного и того же потока, и обе стороны должны использовать идентичные конфигурации (ClientServerConfig, каналы и фабрику сообщений). Она построена поверх библиотек netcode, reliable и serialize того же автора, Glenn Fiedler, и включает libsodium и tlsf. Проект имеет открытый исходный код под лицензией BSD 3-Clause; вклад приветствуется через CONTRIBUTING.md, а сообщения о проблемах безопасности — через SECURITY.md.