networkprotocol/yojimbo logo

networkprotocol/yojimbo

Free

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

FreeFree tier
Type
Open Source
Company
Más Bandwidth LLC

About networkprotocol/yojimbo

Yojimbo is a network library for client/server games written in C++, designed around the networking requirements of competitive multiplayer games like 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, and support for unreliable-unordered and reliable-ordered messages with aggressive resend until acknowledgment. It also includes data blocks larger than maximum packet size attached to reliable-ordered messages, and estimates of latency, jitter, packet loss, and bandwidth per-connection. The library is stable and production ready, built on top of netcode, reliable, and serialize libraries by the same author. It is single-threaded and designed for up to 100 players with identical client and server configurations.

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 ack
Data blocks larger than maximum packet size attached to reliable-ordered messages
Estimates of latency, jitter, packet loss, bandwidth sent, received and acked per-connection
Single-threaded design for simplicity

Pros & Cons

Pros
  • Stable and production ready
  • Cryptographically secure authentication and encryption
  • Built on reliable open-source libraries (netcode, reliable, serialize)
  • Designed specifically for competitive multiplayer game networking needs
  • Provides detailed per-connection network metrics (latency, jitter, packet loss, bandwidth)
Cons
  • Limited to client/server model (no P2P support)
  • Supports a maximum of 100 players
  • Single-threaded; all calls must be from the same thread
  • Client and server configurations must be identical, requiring manual synchronization
  • Not suitable for turn-based or large-scale MMOs

Best For

Client/server games with up to 100 playersCompetitive multiplayer games like first person shootersReal-time multiplayer games needing encrypted network communicationGame engines written in C++ requiring network support

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.
What features does yojimbo offer?
It includes cryptographically secure authentication, encrypted packets over UDP, packet fragmentation, reliable-ordered messages, latency estimation, and more.
Who is the author of yojimbo?
The author is Glenn Fiedler, and the library is built on his other open-source libraries netcode, reliable, and serialize.
What license is yojimbo released under?
Yojimbo is released under the BSD 3-Clause license.
Is yojimbo production ready?
Yes, yojimbo is described as stable and production ready.