// the find
tidwall/evio
Fast event-loop networking for Go
evio is a low-level event-loop networking library for Go that bypasses the standard net package and calls epoll/kqueue directly. It's for people building servers where the Go runtime's goroutine-per-connection model is the bottleneck — think Redis-style protocol servers, proxies, or anything that needs to squeeze the last 20% of throughput out of a machine.
The benchmarks are credible — comparing directly against Redis and haproxy on the same hardware rather than just against the stdlib. The load balancing options (random, round-robin, least-connections) are wired in without needing a separate layer. Supporting multiple addresses on one event loop is genuinely useful for servers that need to listen on both TCP and Unix sockets simultaneously. The fallback to stdlib net on non-epoll/kqueue platforms means you don't ship broken binaries on Windows.
This repo has been effectively dormant since around 2020 despite the recent commit date — the issues tracker is full of unresolved reports and the author's own README note says evio should not be a drop-in replacement, which is doing a lot of heavy lifting. The API surface forces you to think in terms of raw bytes and manual buffering; there's no framing or protocol abstraction, so you're reimplementing readline or length-prefix parsing yourself every time. Multithreaded mode puts the synchronization burden entirely on the caller — the docs mention it in one paragraph and leave you to figure out the rest. For new projects, gnet (a direct fork with active maintenance) has passed it on essentially every dimension.