Skip to content

v1.6.0

Choose a tag to compare

@wtigero wtigero released this 04 Jul 07:37
· 39 commits to main since this release
d6eea3d

Highlights

  • WebSocket on the Wing transport. contrib/ws now works on Wing (the default on Linux), previously net/http-only. Register with ws.HandleFunc(app, "/ws", handler) — identical on every transport. Wing hands the taken-over connection to contrib/ws via the standard http.Hijacker contract (a new generic kruda.Hijack route preset); the RFC 6455 frame code is reused unchanged and the inline hot path is untouched.
  • contrib/ws frame-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 Connection request 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.