An application event-loop with ratatui and crossterm.
rat-salsa provides
- application event loop [run_tui]
- background tasks
- background async tasks
- timers
- crossterm
- messages
- focus
- control-flow
- traits for
- [AppWidget]
- [AppState]
For a start you can have a look at the book.
-
rat-widget widget library. Incorporates everything below, but each crate can be used on its own too.
Foundational crates:
- rat-event Defines the primitives for event-handling.
- rat-cursor Defines just one trait to propagate the required screen cursor position.
- rat-focus Primitives for focus-handling.
- rat-reloc Relocate widgets after rendering. Needed support for view-like widgets.
- rat-scrolled Utility widgets for scrolling.
- rat-popup Utility widget to help with popups.
Crates that deal with specific categories of widgets.
- rat-ftable table. uses traits to render your data, and renders only the visible cells. this makes rendering effectively O(1) in regard to the number of rows.
- rat-menu Menu widgets.
- rat-text Text/Value input widgets.
And my 10ct on theming.
- rat-theme Color-palettes and widget styles.
-
rat-window Stopped for now. Implement windows in the tui. Can work with dyn StatefulWidgets too. The groundwork is done, but it's missing a lot of implementation.
The examples directory contains some examples
There are some starters too
- minimal.rs: Minimal application with a menubar and statusbar.
- ultra.rs: Absolute minimum setup.