mas-bandwidth/yojimbo
FreeA network library for client/server games written in C++
About mas-bandwidth/yojimbo
Yojimbo is a network library for client/server games written in C++, designed specifically for the networking requirements of competitive multiplayer games such as first person shooters. It provides cryptographically secure authentication via connect tokens, encrypted and signed packets over UDP, packet fragmentation and reassembly, a bitpacker and serialization system, unreliable-unordered messages for time-sensitive data, reliable-ordered messages with aggressive resend until acknowledgment, support for data blocks larger than the maximum packet size, and per-connection estimates of latency, jitter, packet loss, and bandwidth. The library is stable, production-ready, and built on top of other open-source libraries (netcode, reliable, serialize) by the same author, Glenn Fiedler. It is single-threaded, requires identical client and server configurations, and is optimized for games with 100 players or fewer. Yojimbo is released under the BSD 3-Clause license and bundles libsodium for cryptographic operations.
Key Features
Pros & Cons
- Production-ready and stable library
- Written by experienced game netcode author Glenn Fiedler
- Includes encryption and authentication for secure connections
- Supports both reliable and unreliable message types
- Provides detailed network statistics per connection
- Handles packet fragmentation and reassembly automatically
- Open source with BSD 3-Clause license
- Single-threaded design limits concurrency
- Requires identical client and server configurations
- Designed for games with 100 players or fewer (scaling limitation)
- C++ only, not suitable for other languages without bindings
- Not an AI tool; purely a networking library