finds.dev← search

// the find

nxrighthere/ENet-CSharp

★ 903 · C · MIT · updated Jul 2025

Reliable UDP networking library

A C# binding (plus modified native C implementation) of the ENet reliable UDP library, targeting game networking in Unity and .NET. It gives you channels, sequencing, reliability, and fragmentation on top of raw UDP without the overhead of TCP. The protocol is modified from upstream ENet, meaning peers must both use this fork — you can't talk to stock ENet.

The packet flag granularity is genuinely useful: per-packet you can choose reliable, unreliable, unsequenced, unthrottled, or instant-send, which maps cleanly onto game traffic patterns (positions vs. events vs. RPC). Custom memory allocator hookpoint is a rare feature that matters in Unity where you want allocations going through the native heap, not GC. Dual IPv4/IPv6 stack support is handled transparently. The ChecksumCallback with CRC64 lets you add integrity verification without ripping out the transport.

The modified protocol is a hard fork from upstream ENet — no interop with any other ENet implementation, which narrows your options if you need server-side non-.NET peers. Thread safety story is fragile: the docs say ENet isn't thread-safe but carve out undocumented exceptions, which is exactly the kind of thing that produces rare, hard-to-reproduce bugs under load. The repo appears to be maintained by a single author who went quiet for stretches; no recent major releases and the NuGet package targets .NET Standard 2.1, so there's no native AOT or .NET 8+ trimming story. No built-in serialization or message framing — you're shipping raw byte arrays, so you're writing that layer yourself.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →