densa

Developers

Run it in a minute.

You need Rust 1.90 or later and a GPU with Vulkan, Metal, DirectX 12 or OpenGL. densa builds and tests on Linux, macOS and Windows.

densa is 0.x and experimental: APIs change between releases. The crates are on crates.io; the API documentation is on docs.rs.

01 — Get started

Clone, run, then build.

terminal
git clone https://github.com/densa-rs/densa
cd densa
cargo run --release -p densa-widgets --example monitor   # a live fleet: grid and chart
cargo run --release -p densa-widgets --example gallery   # the standard widgets

02 — Examples

Everything here works today.

Each item is an example in a repository: clone it and run the command.

  1. 01

    Monitor a fleet of hosts

    1,000 simulated hosts in a live grid, slowest first; click one to chart its latency and traffic from a live table of samples.

    cargo run --release -p densa-widgets --example monitor
    densa
  2. 02

    Keep a live table sorted

    100,000 rows upserted by key, a thousand every frame: click a title to sort, type to filter, and a selected row stays selected as it moves.

    cargo run --release -p densa-widgets --example live_table
    densa
  3. 03

    Chart live candles

    One-minute candles with a moving average over volume: scroll to zoom around the pointer, drag to pan, double-click to follow.

    cargo run --release -p densa-widgets --example chart
    densa
  4. 04

    Link a chart to a grid

    Click one of 200 live instruments and the chart shows its trades: a live view filtered by symbol and sorted by time.

    cargo run --release -p densa-widgets --example linked
    densa
  5. 05

    Open a Parquet or CSV file

    A million rows read on a background thread into the live grid, which draws and sorts while the file loads.

    cargo run --release -p file-viewer -- --sample
    densa-connectors
  6. 06

    Watch a WebSocket stream

    500 sensors streamed as JSON from a local server into the live grid, the latest row of each, reconnecting if the server goes away.

    cargo run --release -p stream-viewer -- --demo
    densa-connectors
  7. 07

    Summarize data with SQL

    DataFusion runs SQL typed into a text box over a million web requests; the result fills the grid as it is computed.

    cargo run --release -p sql-viewer -- --demo
    densa-connectors
  8. 08

    Query a live table with SQL

    Requests stream into a live table; every second DataFusion queries a snapshot of it, and the grid updates its rows in place.

    cargo run --release -p sql-viewer -- --live
    densa-connectors
  9. 09

    Explore files and streams in densa Studio

    Parquet and CSV files and WebSocket streams in tabs that keep up, live SQL over all of them, a chart of the result, and a workspace kept between runs.

    densa-studio --sample
    densa-studio
  10. 10

    Query a Flight SQL service

    A local Flight service answers a query with a million web requests in four endpoints; the grid fills as they arrive.

    cargo run --release -p flight-viewer -- --demo
    densa-connectors
  11. 11

    Stream prices into a grid

    A worker thread ticks thousands of instruments; the screen shows the newest snapshot every frame, with changed cells flashing.

    cargo run --release -p trading-demo
    densa
  12. 12

    Scroll a million-row Arrow table

    Record batches shown as they are, never copied, with new batches appended while the table is on screen.

    cargo run --release -p densa-arrow --example table -- --live
    densa
  13. 13

    Arrange a docking workspace

    Panels in tab groups around a live watchlist: drag tabs to join or split groups, click a column title to sort. The arrangement is saved to the file you name and restored next time.

    cargo run --release -p densa-widgets --example dock -- --layout dock.txt
    densa
  14. 14

    Build tool windows

    Toolbars, filters, buttons, scrolling lists and splitters, laid out with flexbox, with Tab between controls.

    cargo run --release -p densa-widgets --example gallery
    densa
  15. 15

    Edit and select text

    Shaped, wrapped, bidirectional text: click, drag and keyboard selection, and input-method composition shown in place.

    cargo run --release -p densa-paragraph --example editor
    densa

03 — Repositories

Where the work happens.

densa-rs/densa

The platform

Every core crate, the examples and the trading demo, with continuous integration on three operating systems.

Open

densa-rs/densa-connectors

Data sources

Connectors with large dependency trees of their own: CSV and Parquet files, WebSocket streams, Arrow Flight and SQL with DataFusion today; DuckDB and Polars next.

Open

densa-rs/.github

Community

How to contribute, report a vulnerability, and the code of conduct every space follows.

Open

Contribute

Issues, ideas and pull requests are welcome.