Skip to content

Releases: Tuntii/viltrum

v0.7.2

Choose a tag to compare

@github-actions github-actions released this 29 Jul 00:32

0.7.2 (2026-07-29)

Performance Improvements

  • http: polish PR2 parse_request helpers and edge tests (#18) (d66e238)
  • http: PR2 parse_request byte walk without full bytestr (#18) (6eef34c)

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 28 Jul 22:30

0.7.1 (2026-07-28)

Performance Improvements

  • http: PR1 Axum compare harness and hot-path epic baseline (#17) (227ae9a), closes #16
  • http: PR1 baseline harness without design doc share (#17) (fec76eb)

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 28 Jul 21:55

0.7.0 (2026-07-28)

Features

  • tls: in-process HTTPS and WSS via mbedtls (#1) (00ab6c0)

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 23 Jul 17:08

0.6.1 (2026-07-23)

Performance Improvements

  • http: reuse read scratch and cheaper CL/TE scan (#9) (34c2a13)

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 23 Jul 16:50

0.6.0 (2026-07-23)

Features

  • bench: first-party V WS load client and CI soak (fc9f626)

v0.5.2

Choose a tag to compare

@github-actions github-actions released this 23 Jul 16:40

0.5.2 (2026-07-23)

Bug Fixes

  • ws: idle timeouts, UTF-8 opt-in, soak harness, Conn ref (356a5eb), closes #4 #8 #5 #6

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 19 Jul 14:24

0.5.1 (2026-07-19)

Bug Fixes

  • keep accept loop alive when handle_signals is on (2a3b3dc), closes #11

v0.5.0 — first-party WebSocket (ws://)

Choose a tag to compare

@Tuntii Tuntii released this 19 Jul 13:17

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 wrapper
  • app.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 scope
  • docs/deploy.md — nginx upgrade hop-by-hop sketch
  • examples/ws_echowebsocat ws://127.0.0.1:8084/ws

Tests

  • v test ws/ · existing http/ · 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 Collect in-process TLS / WSS use-cases; planned after WS (0.6)

Full notes: CHANGELOG.md · ROADMAP.md

v0.4.0 — connection hijack / upgrade foundation

Choose a tag to compare

@Tuntii Tuntii released this 19 Jul 12:05

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 bytes
  • Conn.peer_ip for upgrade/logging
  • app.upgrade(method, pattern, handler) — single hijack path; HTTP loop stops for that conn
  • viltrum.switching_protocols for bare 101 responses
  • ServerOptions.max_conns — excess accepts get 503 + close
  • read_header_timeout, send_date, server_header (opt-in; do not overwrite handler headers)
  • http.http_date / viltrum.http_date for IMF-fixdate
  • TE + Content-Length conflict → 400

Docs & example

  • docs/upgrade.md — leftover ownership, shutdown behaviour
  • docs/connection.md, docs/deploy.md, docs/request-response.md, ROADMAP.md
  • examples/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 from options for ServerOptions)

Next

v0.5 — WebSocket (ws://) on this upgrade path. Interest: interest:websocket Collect WebSocket (ws://) use-cases; no implementation in 0.3.x

Full notes: CHANGELOG.md · ROADMAP.md

v0.3.2 wildcards, JSON helpers, middleware chain

Choose a tag to compare

@Tuntii Tuntii released this 18 Jul 11:07

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) and Mount.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