// the find
lxzan/gws
simple, fast, reliable websocket server & client, supports running over tcp/kcp/unix domain socket. keywords: ws, proxy, chat, go, golang...
GWS is a Go WebSocket library that prioritizes throughput and low allocation counts over API flexibility. It passes the full Autobahn test suite (RFC 6455 + RFC 7692 compliant) and supports running over TCP, KCP, or Unix sockets — useful for building chat servers, push hubs, or proxies that need to handle thousands of long-lived connections. Aimed at Go developers who want something faster than gorilla/websocket without the complexity of nbio.
The Broadcaster API compresses once and fans out to N connections, which is the right design for chat/pub-sub at scale — most libraries make you re-compress per connection. Per-write ops are genuinely cheap: 232ns and 1 allocation uncompressed is competitive. KCP transport support is a real differentiator for high-packet-loss environments like games. The event interface is small and obvious; five methods covering the full connection lifecycle with no surprises.
No built-in rate limiting or backpressure — if a slow client fills its write queue, you're on your own for flow control, and the docs just shrug and say 'add throttling at the business layer'. The parallel message processing option (ParallelEnabled) drops message ordering guarantees with minimal ceremony, which will bite someone who enables it without reading the fine print. Community support is WeChat/QQ groups, which is a practical barrier for non-Chinese-speaking teams. Last meaningful activity on the repo is a few months old with 1.7k stars — not abandoned, but not heavily maintained either.