Repository navigation
0.13.1 - 2026-09-21
Added
vertigo serveandvertigo watchnow compress responses (brotli/gzip/zstd, by content
negotiation). The wasm binary andwasm_run.jsare then about 3 times smaller.
Pass--disable-compressionbehind a proxy or CDN that already compresses.
The fullstack template (vertigo new -t fullstack) does the same through
App::wrap(Compress::default()).
Performance
- Reduced WASM sizes by around 10% by de-genericization.
- Reduces
wasm_run.jsby 9% - dead code removed, and different functions were optimized. - SSR: Per-request WASM instantiation got about 24% cheaper (see fix below).
Fixed
- Hydration fail when the app subscribes to a value before the root
dom!block. --proxyforwarded the upstream'sContent-EncodingandContent-Lengtheven thoughawc
had already decoded the body, so proxying to an upstream that compressed produced a response
no client could decode.- SSR: WASM instantiation types order problem. Imports are now resolved by name, once at startup.
Per-request instantiation got about 24% cheaper. A missing or mistyped import is now reported
at startup, naming the import, instead of per request.
Internals
-
Added tests for the JsJson codec (
jsjson.ts). -
Added benchmarks:
task ssr-benchrenders a set of pages and reports where the time went,task hydration-benchloads a set of server-rendered pages in a real browser and reports
how long hydration took and how many DOM mutations it performed,task reactive-benchruns the reactive-graph benchmark suite,task dom-benchruns the end-to-end benchmark suite.
task benchruns all four benchmarks.task bench-compareruns all four benchmarks and
compares them against the baseline.See benchmarks
-
vertigo-cligained an off-by-defaultssr-timingsfeature, which is what exposes the
per-phase breakdown throughServerState::request_timed. It compiles to nothing when off