v0.4.0 — connection hijack / upgrade foundation
Viltrum v0.4.0
Connection hijack foundation for custom protocols (pre-WebSocket). Cleartext HTTP/1.1 remains first-class; reverse proxy for TLS is still fine.
Engine / upgrade
engine.Conn: read/write/close/deadlines + pushback buffer for post-message bytesConn.peer_ipfor upgrade/loggingapp.upgrade(method, pattern, handler)— single hijack path; HTTP loop stops for that connviltrum.switching_protocolsfor bare 101 responsesServerOptions.max_conns— excess accepts get 503 + closeread_header_timeout,send_date,server_header(opt-in; do not overwrite handler headers)http.http_date/viltrum.http_datefor IMF-fixdate- TE + Content-Length conflict → 400
Docs & example
docs/upgrade.md— leftover ownership, shutdown behaviourdocs/connection.md,docs/deploy.md,docs/request-response.md,ROADMAP.mdexamples/upgrade_echo
Tests
v test http/·router/·engine/(TCP integration + Conn pushback unit tests)- CI builds
upgrade_echo
From 0.3.x polish (included)
- Chunked/TE reject; Expect 100-continue; HEAD body omit + GET fallback
- Absolute-form target, OPTIONS
*;patch/options/head App.server_options(renamed fromoptionsfor ServerOptions)
Next
v0.5 — WebSocket (ws://) on this upgrade path. Interest:
interest:websocket
Full notes: CHANGELOG.md · ROADMAP.md