finds.dev← search

// the find

AlexStocks/getty

★ 940 · Go · Apache-2.0 · updated Jul 2026

a netty like asynchronous network I/O library based on tcp/udp/websocket; a bidirectional RPC framework based on JSON/Protobuf; a microservice framework based on zookeeper/etcd

Getty is a Go network I/O library modeled after Java's Netty, handling TCP, UDP, and WebSocket under a unified session/event-listener abstraction. It splits each connection into separate read and logic goroutines, and the README doubles as a full API reference with working examples. Aimed at Go developers building custom binary protocols, game servers, or RPC layers who want more control than net/http gives them.

The two-goroutine-per-connection model (reader + logic) is explicit and honest about where blocking can happen — you know exactly where to offload slow work. The functional options pattern for server/client config is clean Go, no XML or builder anti-patterns. WebSocket heartbeat (ping/pong) is handled automatically by the framework, so you only need to check the idle timestamp in OnCron rather than implement your own keepalive dance. The callback system's replace-in-place semantics (same handler+key pair updates without reordering) is a thoughtful detail that prevents subtle ordering bugs in cleanup chains.

940 stars after what appears to be years of development is a real signal — this library never found a critical mass of users, which means bug reports are sparse and you're largely on your own when you hit an edge case. No built-in flow control or backpressure: if your logic goroutine falls behind, the write buffer fills up and WritePkg returns errors that the caller must handle and retry — the framework documents this but provides no scaffolding for it. The layered architecture diagram in the README is mostly cosmetic; the actual transport package is a single flat directory with ~15 files, so the 'layers' aren't enforced by the package structure. Travis CI badge still points to the old travis-ci.org domain, which suggests CI may have been broken for years without anyone noticing.

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 →