Skip to main content

densa/
lib.rs

1//! densa: a native Rust platform for data-dense, real-time applications.
2//!
3//! This crate gathers densa's libraries under one name, each as a module. Every module is
4//! also its own crate (`densa-ui` is [`ui`], and so on): depend on those directly to take
5//! only what you use.
6//!
7//! - Interface: [`ui`] (the widget tree, layout, events, focus, accessibility),
8//!   [`widgets`] (labels, buttons, text inputs, scroll views, docking, the data grid and
9//!   charts as widgets), `window` (a native window; feature `window`).
10//! - Drawing: [`draw`] (the GPU-free display list), `render` (wgpu; feature `window`),
11//!   [`grid`], [`chart`], [`text`] (fonts and the glyph atlas), [`paragraph`] (shaped,
12//!   wrapped text, selection and editing).
13//! - Data: `data` (live Arrow tables with incremental views and aggregates) and
14//!   `arrow` (Arrow in the grid and charts), both behind the `data` feature.
15//! - Runtime: [`sync`] (a wait-free triple buffer), [`platform`] (CPU placement and thread
16//!   priority), [`fmt`] (allocation-free number formatting), [`alloc`] (a counting
17//!   allocator for proving code allocates nothing), and [`core`] (the shared primitives).
18//!
19//! Data sources (CSV and Parquet files, WebSocket streams, Arrow Flight) live in
20//! [densa-connectors](https://github.com/densa-rs/densa-connectors). See
21//! [densa.dev](https://densa.dev) for guides and the roadmap.
22
23pub use densa_alloc as alloc;
24#[cfg(feature = "data")]
25pub use densa_arrow as arrow;
26pub use densa_chart as chart;
27pub use densa_core as core;
28#[cfg(feature = "data")]
29pub use densa_data as data;
30pub use densa_draw as draw;
31pub use densa_fmt as fmt;
32pub use densa_grid as grid;
33pub use densa_paragraph as paragraph;
34pub use densa_platform as platform;
35#[cfg(feature = "window")]
36pub use densa_render as render;
37pub use densa_sync as sync;
38pub use densa_text as text;
39pub use densa_ui as ui;
40pub use densa_widgets as widgets;
41#[cfg(feature = "window")]
42pub use densa_window as window;