Expand description
§rat-salsa-2
Runs an application event-loop for ratatui and crossterm.
It can
- poll multiple event-sources fairly
- run background tasks in one or more worker threads.
- run background tasks as async tasks.
- define timers.
- work as a message-queue for in-app messages.
- support focus-handling with SalsaContext::focus
All incoming events are converted to an application defined event-type, and are distributed by calling an event-handler function. This function returns a control-flow which dictates further actions.
§Changes
§Book
… coming soon(ish) …
§Companion Crates
-
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.
- rat-dialog Stacks windows/dialogs above the main application.
Crates for specific 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.
- rat-markdown Extension for TextArea for markdown.
And my 10ct on theming.
- rat-theme Color-palettes and widget styles.
- rat-theme2 More colors, mainly.
§Example
The examples directory contains some examples
- files.rs: Minimal filesystem browser.
- mdedit.rs: Minimal markdown editor.
- life.rs: Game of Life.
- async1.rs: Async tasks.
- logscroll.rs: Logfile view and find.
- theme_samples.rs: Theme show-room.
- turbo.rs: Reboot Turbo Pascal.
There are some starters too
- minimal.rs: Minimal application with a menubar and statusbar.
- ultra.rs: Absolute minimum setup.
Modules§
- event
- Event types.
- mock
- Provides dummy implementations for some functions.
- poll
- Event sources.
- tasks
- Types used for both future tasks and thread tasks.
- terminal
- rat-salsa’s own Terminal trait to hide some details.
- timer
- Support for timers.
Structs§
- RunConfig
- Captures some parameters for crate::run_tui().
- Salsa
AppContext - Application context for event handling.
Enums§
- Control
- Result enum for event handling.
Traits§
- Salsa
Context - This trait gives access to all facilities built into rat-salsa.
Functions§
- run_tui
- Run the event-loop