Crustkit
Small reusable Rust TUI primitives for command-line applications built with Ratatui and Crossterm.
Crustkit is intentionally not a full application framework. It provides terminal
lifecycle helpers, status lines, key hints, shell header/footer helpers, transfer
progress widgets, theme primitives, terminal background detection, small
adaptive layout helpers, and mouse-driven resizable sidebar state. With the
optional taffy feature, it also provides a thin bridge from Taffy layout trees
to Ratatui rectangles. App domain logic belongs in the consuming crate.
The crate is meant to stay composable and non-invasive: use the primitives you need, keep your app state and domain workflow in your own crate, and rely on Cargo patches for local iteration.
[]
= "0.1.0"
use Duration;
use ;
let theme = detect_or;
CLI reload is opt-in:
let reload = enabled;
run_reloadable_cli?;
The default enabled binding is ctrl+r.
TachyonFX support is enabled by default. Disable default features when a consumer needs the smallest dependency graph:
[]
= { = "0.1.0", = false }
use ;
let mut effects = new;
terminal.draw?;
The effects module also re-exports tachyonfx, so consumers can drop down to
raw tachyonfx::fx::* composition whenever the preset helpers are not enough.
Taffy support is opt-in:
[]
= { = "0.1.0", = ["taffy"] }
use ;
tree.compute_terminal_layout?;
let content = tree.layout_rect?;
Resizable sidebars are part of the base crate:
let split = sidebar.layout;
sidebar.handle_mouse;
The repository also includes a publish-disabled demo app: