Introduction
reliable.io is a simple reliability layer for UDP-based protocols.
It's designed for situations where there is a bidirectional flow of packets, for example, real-time action games like first person shooters.
It has the following features:
-
Identifies which packets were received by the other side (acks)
-
Packet fragmentation and re-assembly (so you can send packets larger than MTU)
-
Estimates for round-trip time and packet loss
Usage
reliable.io is a low-level library that is designed to be used with your existing network layer.
It has no networking support, and no opinion on what topology you should use. Its only requirement is that you have one reliable.io endpoint on each side of a connection.
If you would like a secure client/server communications layer to use with reliable.io, I recommend netcode.io
If you want something higher level that implements reliable-ordered messages on top of reliable.io, try yojimbo.
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
reliable.io is generously sponsored by:
-
Gold Sponsors
-
Silver Sponsors
-
Bronze Sponsors
And by individual supporters on Patreon. Thank you. You made this possible!