Releases: Tuntii/viltrum
Releases · Tuntii/viltrum
Release list
v0.7.2
v0.7.1
v0.7.0
v0.6.1
v0.6.0
v0.5.2
v0.5.1
v0.5.0 — first-party WebSocket (ws://)
Viltrum v0.5.0
First-party RFC 6455 server on the v0.4 Conn / app.upgrade path. Cleartext ws:// only; wss:// is v0.6. Reverse proxy for TLS remains first-class.
WebSocket
viltrum.ws— own frame codec (text, binary, close, ping, pong); not a third-party wrapperapp.ws/app.ws_opts— one-line facade on the hijack foundation- Handshake:
Upgrade: websocket, version 13,Sec-WebSocket-Accept(RFC golden vector tested) - Client mask required; server unmasked; fragmented data rejected (close 1002)
- Message/frame size limits (default 1 MiB); auto-pong on; optional subprotocol +
check_origin
Docs & example
docs/ws.md— API, options, out of scopedocs/deploy.md— nginx upgrade hop-by-hop sketchexamples/ws_echo—websocat ws://127.0.0.1:8084/ws
Tests
v test ws/· existinghttp/·router/·engine/- CI builds
ws_echo
Next
v0.6 — in-process TLS (https://) then WSS (wss://) on the same Conn + WS stack. Interest:
interest:tls
Full notes: CHANGELOG.md · ROADMAP.md
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
v0.3.2 wildcards, JSON helpers, middleware chain
Viltrum v0.3.2
Added
- Trailing wildcard routes:
/files/*path - Minimal JSON body helpers:
req.json_string/json_int/json_bool - Route middleware:
viltrum.chain([...], handler)andMount.use(...) scripts/install.sh(links~/.vmodules/viltrum)- Heavier bench notes (GET c=500, POST JSON) in
benches/RESULTS.md
Bench (honest, local laptop, oha)
- GET
/c=100: ~27k req/s - GET
/c=500: ~8k req/s (tail latency laptop-bound) - POST JSON c=100: ~25k req/s
Install
git clone https://github.com/Tuntii/viltrum.git && cd viltrum
bash scripts/install.sh
v run examples/features