GUI toolkits
Draw widgets well, but leave the data to you: no live tables, no incremental sorting or grouping, no streaming.
Vision
densa is becoming an open, native platform for real-time data applications: the engine that keeps live data in order, and the interface that shows it, in one Rust stack.
Why
Trading desks, operations centers and engineering teams build screens that follow thousands of values changing every second. Today they assemble them from separate pieces, and pay for every seam between them.
Draw widgets well, but leave the data to you: no live tables, no incremental sorting or grouping, no streaming.
Arrow, DataFusion, Polars and DuckDB process data superbly, then stop at a result set. Showing it live is someone else's problem.
Reach every browser, but run in a sandbox with a garbage collector between the data and the screen, and struggle beyond thousands of updates a second.
One native stack, Arrow from end to end: live data structures, views that update incrementally, and a GPU interface that never allocates while it draws.
The platform
GPU rendering, real text and editing in every script, a data grid, and widgets with flexbox layout, events, focus, themes, docking workspaces and screen reader support, and the data grid as a widget. Next: menus.
In progressArrow-native tables updated by key, and views whose sorting, filtering, grouping and aggregates update with each change instead of being recomputed (available). Next: time windows and joins.
In progressGPU charts for millions of points: time series, candlesticks, heatmaps and depth, linked to the grid so a selection in one filters the other.
PlannedArrow Flight, Kafka, NATS, WebSocket, Parquet and CSV, and the engines that already speak Arrow: DataFusion, Polars, DuckDB.
PlannedFlagship application
An open-source application built on the platform: open a Parquet file, a CSV or a live stream and explore it at once, in grids and charts that keep up with the data. It proves the platform in daily use and gives everyone a reason to try it.
Roadmap
Each phase ends with something usable, measured and documented. Nothing marked next or planned is available yet.
GPU canvas and data grid, paragraphs, selection, editing with input methods, wait-free data hand-off, Apache Arrow tables in the grid.
The live data engine's core: keyed tables, incrementally maintained views and grouped aggregates. The widget foundation: flexbox layout, events, focus and themes, docking workspaces, screen reader support, and text in every script.
The data grid as a widget (available), showing live views in docked panels; GPU charts linked to tables; the first connectors for files, streams and query engines.
The flagship application, crates published on crates.io, and full documentation here.
The same applications in the browser through WebAssembly and WebGPU, and a plugin system.
Principles
Every performance figure names its hardware; every guarantee is a test.
Startup and changes may allocate; drawing, scrolling and steady state may not.
Data stays in Arrow's columnar form from the source to the screen, shared rather than copied.
Every layer is a set of crates usable on its own; the Studio uses only public APIs.
MIT or Apache-2.0, developed in the open on GitHub.
Desktop on Linux, macOS and Windows first; the browser follows on the same code.