netcode.io is a connection-oriented protocol built on top of UDP.
It's designed for use in client/server games with dedicated servers.
It has the following security features:
- Protection against man-in-the-middle attacks.
- Protection against DDoS amplification attacks.
- Protection against packet replay attacks.
- Protection against zombie clients.
netcode.io has been used in several AAA game projects and is stable and mature.
Please refer to the second half of this whitepaper: Why can't I send UDP packets from a browser?
For a complete technical specification, read the netcode 1.02 standard.
This is a fork (actually it's a fork of a fork of a fork, and at this point the original C code is no longer included)
The Rust crate lives under rust/, with its manifest at the repository root.
Other netcode.io repositories include:
- netcode.io C# implementation
- netcode.io Golang implementation
- netcode.io Rust implementation (updated fork of vvanders/netcode.io)
- netcode.io for Unity
- netcode.io for UE4
- netcode.io browser plugin
These people are awesome:
- Val Vanders - Rust Implementation
- Walter Pearce - Rust Implementation
- Isaac Dawson - Golang Implementation
- June Rhodes - C# bindings, browser support, UE4 integration
- Alan Stagner - Unity integration, C# implementation
- Jérôme Leclercq - Support for random connect token nonce
- Randy Gaul - Discovered vulnerability in replay protection
Thanks for your contributions to netcode.io!
The author of the original C library is Glenn Fiedler.
Glenn wrote an article series about the development of this library called Building a Game Network Protocol.
Other open source libraries by the same author include: yojimbo and reliable.io
netcode.io was generously sponsored by:
-
Gold Sponsors
-
Silver Sponsors
-
Bronze Sponsors
And by individual supporters on Patreon. Thank you. You made this possible!