zhoubug / libyojimbo

A library for creating secure client/server network protocols over UDP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Travis Build Status Coverity Scan Build Status

libyojimbo

libyojimbo is a new, easy-to-use library for creating secure client/server network protocols over UDP.

It is designed around the networking requirements of competitive realtime multiplayer games such as first person shooters and action games. As such it provides the absolute fastest, most time critical networking layer over UDP, with a client/server architecture supporting up to 64 players per-dedicated server instance.

Status

libyojimbo is currently in pre-release for early feedback. Right now it provides support for: cryptographically secure authentication, client/server connection management, encryption for packets sent over UDP, reliable-ordered messages and data blocks, plus a serialization framework for extending the protocol with custom messages and packet types.

Current work is focused on documenting the library and finalizing the API. Once the library is sufficiently documented, it will be extended to support large unreliable-unordered snapshot messages with MTU fragmentation and reassembly at the yojimbo wire protocol level. After this, the next milestone is to extend the matcher to support dynamically registered server instances.

For more details please refer to the roadmap.

Author

The author of this library is Glenn Fiedler, a recognized expert in the field of game network programming with over 15 years experience in the game industry.

Glenn is currently writing an article series about the development of this library called Building a Game Network Protocol.

You can support Glenn's work writing articles and open source code via Patreon.

Sponsors

libyojimbo is generously sponsored by:

  • Gold Sponsors
  • Silver Sponsors
  • Bronze Sponsors

And by individual supporters on Patreon. Thank you. You make this possible!

License

BSD 3-Clause license.

About

A library for creating secure client/server network protocols over UDP


Languages

Language:C++ 63.3%Language:C 35.9%Language:Lua 0.5%Language:Go 0.2%Language:Batchfile 0.0%