A simple protocol for secure client/server connections over UDP
C Lua C++
Switch branches/tags
Nothing to show
Latest commit de20d23 Sep 8, 2017 @gafferongames gafferongames committed on GitHub Update README.md
Failed to load latest commit information.
docker fix logs Aug 15, 2017
valgrind fix logs Aug 15, 2017
windows fix logs Aug 15, 2017
.gitignore remove rust impl from main repo Aug 14, 2017
.travis.yml Update .travis.yml Aug 15, 2017
BUILDING.md fix logs Aug 15, 2017
LICENCE added LICENCE Mar 31, 2017
README.md Update README.md Sep 9, 2017
STANDARD.md Update STANDARD.md Aug 15, 2017
client.c fix logs Aug 15, 2017
client_server.c fix logs Aug 15, 2017
netcode.c debugging Aug 16, 2017
netcode.h added support for getting client and server ports, eg. for 0 port whe… Aug 15, 2017
premake5.lua fix logs Aug 15, 2017
profile.c fix logs Aug 15, 2017
server.c fix logs Aug 15, 2017
soak.c fix logs Aug 15, 2017
test.cpp fix logs Aug 15, 2017


Travis Build Status


netcode.io is a simple protocol for creating secure client/server connections over UDP.

It’s designed for games that shunt players from a main website or web backend to a number of dedicated server instances, with each dedicated server having some maximum number of players.

It has the following features:

  1. Connection oriented
  2. Encrypts and sign packets
  3. All packets are delivered over UDP
  4. Only authenticated clients can connect to dedicated servers

Source Code

This repository holds the reference implementation of netcode.io in C.

Other netcode.io repositories include:

How does it work?

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.01 standard.

How can I help?

This is an open source project and we welcome contributions. Please join us!

Here are some things that we think would be helpful:

  • Provide feedback on the reference implementation
  • Study the code, and look for flaws and weaknesses
  • Port netcode.io to your favorite language (eg. Java, Lua, Python, Ruby...)
  • We welcome anybody who would like to volunteer to perform a security audit of the code
  • Develop a testing framework to guarantee that different languages implementations conform to the standard

Please let me know if you have any more ideas, and feel free to ask questions and get involved by logging issues.


These people are awesome:

Thank you for your contributions to netcode.io!


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.


netcode.io is generously sponsored by:

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


BSD 3-Clause license.