Repository navigation
0.14.0 - 2026-10-21
Websockets report why they closed, carry binary frames and reconnect after a growing wait.
Elements get pointer and wheel events and <canvas> drawing, and a page rendered on the server
can use the user's languages and the cookies the app names.
The 0.14.0 release notes carry the migration steps, the reasoning behind the
breaking changes and an example of each new feature.
Breaking
- Every event from the browser runs in one transaction, so what it writes reaches the DOM in one
batch. Until the handler returns, a watchedComputedof what it wrote and the DOM keep their
state from before the event. WebsocketMessage::Closecarries aWebsocketClosewith the close code and reason, and comes
also after a failed attempt to connect.WebsocketMessagehas a new variant,Binary.
Added
- Default component props:
#[default = <constant>]on a#[component]param, and{..}in its
tag (nightly). WebsocketClose::stop_reconnecting, to give up on a websocket.Driver::websocket_with_optionswithWebsocketOptions: the timeout to connect and the waits
between attempts.- Binary websocket frames:
WebsocketMessage::BinaryandWebsocketConnection::send_binary. --proxyofvertigo serveandvertigo watchcarries websockets too.Driver::on_animation_frame: a callback before every frame the browser draws.on_wheelon elements, with aWheelEvent.on_pointer_down,on_pointer_move,on_pointer_upandon_pointer_cancelon elements, with
aPointerEvent.Driver::languages: the languages the user prefers, in the browser and during SSR.MountConfigBuilder::ssr_cookieand--ssr-cookieofvertigo serveandvertigo watch: a
cookie the app may read during SSR too.ServerState::request_with_headerswithRequestHeaders, andrequest_accept_language: the
request's cookies andAccept-Languagefor SSR.drawon a<canvas>, with aDrawingof 2D context operations.
Changed
- A websocket reconnects after a growing wait (0.5-1 s, doubled up to 15-30 s) instead of every
3 s. vertigo-testingneeds thirtyfour 0.38 (was 0.37.8), which uses zip 9 instead of 8
(RUSTSEC-2026-0367, RUSTSEC-2026-0368, RUSTSEC-2026-0369). It re-exports thirtyfour, so a crate
that also depends on thirtyfour itself needs 0.38 too.
Fixed
- A websocket dropped while still connecting connected anyway and stayed open.
- Websockets of a page in the browser's back/forward cache stayed open.
- The driver moved its
<style>after every batch of DOM changes, so the browser restyled the
page each time. - A
when_connectclosure or anon_after_transactioncallback holding the last handle of
another node panicked when dropped ("RefCell already borrowed"). - A
render_valueorrender_listright under<html>broke the page after hydration since
0.13.4.