mas-bandwidth/yojimbo logo

mas-bandwidth/yojimbo

Free

A network library for client/server games written in C++

FreeFree tier
Type
Open Source
Company
Más Bandwidth LLC

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

Cryptographically secure authentication via connect tokens
Client/server connection management and timeouts
Encrypted and signed packets sent over UDP
Packet fragmentation and reassembly
Bitpacker and serialization system
Unreliable-unordered messages for time-sensitive data
Reliable-ordered messages with aggressive resend until acknowledgment
Data blocks larger than maximum packet size attached to reliable-ordered messages
Per-connection estimates of latency, jitter, packet loss, and bandwidth sent/received/acked

Pros & Cons

Pros
  • 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
Cons
  • 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

Best For

Building client/server networking for competitive multiplayer gamesFirst-person shooter multiplayer game networkingReal-time multiplayer game backends with up to 100 playersGame engine network layer integration for C++ engines

FAQ

What is yojimbo?
Yojimbo is a network library for client/server games written in C++, designed for competitive multiplayer games like first person shooters.
Who created yojimbo?
The library was created by Glenn Fiedler, also known as the author of netcode, reliable, and serialize.
What license does yojimbo use?
Yojimbo is released under the BSD 3-Clause license.
Is yojimbo production-ready?
Yes, according to the documentation, yojimbo is stable and production ready.
What are the design assumptions of yojimbo?
Yojimbo is designed for client/server games with 100 players or less, requires identical client and server configurations, and is single-threaded.