๐ต chai-tea
Status: early-stage but functional โ now with async / background task support. API may change rapidly as development continues.
chai-tea lets you write GUI apps in the same clean loop youโd use in The Elm Architecture (TEA):
use egui;
add eframe to your dependencies, run it and youโve got a fully working counter app.
cargo run --example counter
๐งฉ example: async counters
A minimal demonstration of concurrent background workers, shared atomic state, and repaint-on-message behavior is included under
cargo run --example multicounter
Each counter runs in its own thread and reports back through ChaiSender, automatically triggering redraws.
โจ features
- ๐ Pure Elm-style loop โ deterministic, functional, and testable
- ๐งต Async commands via
brew_async,SyncState, andChaiSender- spawn background threads or async tasks
- send messages back safely
- UI automatically repaints on message arrival
- ๐ Native + (soon) WASM support
- ๐ชถ Tiny, dependency-light core
- โ Ergonomic aliases โ
brew=run,brew_async=run_async
๐ซ possible roadmap
- async / background command support
- fixed-timestep threaded simulation variant
- wasm runner (chai_tea::run_web)
- macro sugar: #[chai_app]
- theme system (chai-latte someday?)
- time travel debugger?