// the find
lsalzman/enet
ENet reliable UDP networking library
ENet is a thin C library that adds reliable, ordered (or unordered) delivery, sequencing, and connection management on top of raw UDP. It's aimed at game developers who need low-latency networking with fewer guarantees than TCP but more structure than bare sockets — it's been the transport layer under Cube/Sauerbraten and a long list of indie game engines.
The API is small enough to read in an afternoon: host, peer, packet, and a handful of functions cover the whole surface. It has no dependencies beyond libc and compiles to a few hundred KB, so it drops into embedded or console targets without dragging in a networking stack. It's been in production in shipped multiplayer games for close to two decades, so the wire protocol and edge cases (packet loss, reordering, fragmentation) are genuinely battle-tested rather than theoretical.
The in-repo README is three lines and just points you to an external homepage for actual documentation — there's no quickstart or example code in the tree itself, so a new user has to leave GitHub before writing a line of code. There's no encryption or authentication built in; you're expected to layer that yourself, which is easy to get wrong. The project has both autotools and CMake build files coexisting, which is a sign of a codebase that's accreted rather than been redesigned, and IPv6 support has historically lagged behind IPv4 in maturity.