// the find
gorilla/websocket
Package gorilla/websocket is a fast, well-tested and widely used WebSocket implementation for Go.
gorilla/websocket is the de facto standard WebSocket library for Go. It's a complete RFC 6455 implementation that passes the Autobahn test suite, and it's in the dependency tree of a huge chunk of the Go ecosystem. If you're building anything with WebSockets in Go, this is what you reach for first.
Full Autobahn test suite compliance — not self-reported spec compliance, actually verified. The PreparedMessage type lets you serialize a message once and broadcast to N connections without redundant encoding work, which matters at scale. Proxy support is built in, not bolted on. The API has been stable for years, so upgrading doesn't break things.
The package is in maintenance mode — the gorilla org was briefly abandoned and came back, but active feature development is essentially done. No built-in connection pool or hub abstraction, so every chat example reimplements the same hub pattern from scratch. Compression support (permessage-deflate) exists but is marked experimental and has known issues with some clients. Not context-aware by default; you have to set deadlines manually on the underlying net.Conn, which is easy to forget.