v1.6.0
Highlights
- WebSocket on the Wing transport.
contrib/wsnow works on Wing (the default on Linux), previously net/http-only. Register withws.HandleFunc(app, "/ws", handler)— identical on every transport. Wing hands the taken-over connection tocontrib/wsvia the standardhttp.Hijackercontract (a new generickruda.Hijackroute preset); the RFC 6455 frame code is reused unchanged and the inline hot path is untouched. contrib/wsframe-parser hardening (RFC 6455 §5). Rejects undefined/reserved opcodes, fragmented control frames, oversized control frames (closing an unbounded-allocation DoS), non-minimal length encodings, and unmasked client frames.- Wing retains the
Connectionrequest header —c.Header("Connection")now works on Wing (required for the upgrade handshake). - New
App.Serve(ln net.Listener)— run the app on a pre-created listener (graceful restart, socket activation, testing).
See the CHANGELOG for full details.
contrib: contrib/ws is re-tagged separately to publish Wing WebSocket support.