wesz / reliable.io

A simple reliability layer for UDP-based protocols

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Travis Build Status

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:

  1. Identifies which packets were received by the other side (acks)

  2. Packet fragmentation and re-assembly (so you can send packets larger than MTU)

  3. 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:

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

License

BSD 3-Clause license.

About

A simple reliability layer for UDP-based protocols

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C 92.8%Language:Lua 5.3%Language:C++ 1.9%