Rust WebSocket backend
An axum service holds a one-second tick, advances simulated metric series, and fans a JSON snapshot out to every client over a single broadcast channel.
Live over WebSocket
A single-page dashboard streaming live data from a Rust service over a WebSocket, rendered with hand-drawn SVG charts — never polling.
Dashboard
About
A Rust service on Fly.io advances a set of simulated metric series once a second and broadcasts a single JSON snapshot to every connected client. The browser opens one WebSocket and simply reacts to what arrives.
There is no interval timer hammering an API. When the connection drops, the client reconnects with exponential backoff and the dashboard reports its status honestly rather than freezing.
Features
An axum service holds a one-second tick, advances simulated metric series, and fans a JSON snapshot out to every client over a single broadcast channel.
The frontend opens one WebSocket and reacts to pushes, so the dashboard reflects new data the instant the server produces it.
The area chart, sparklines, and category bars build their own SVG paths from the data. No charting dependency, full control over every animation.
The client reconnects with capped exponential backoff and surfaces an honest status: connecting, live, reconnecting, or offline.
Values count up smoothly and bars spring to new heights, calming to instant updates when reduced motion is requested.
Choose which metric the large chart plots; the selection reshapes the view live without interrupting the stream.