r3bl-cmdr: Redux-style state management for Rust TUIs
ToolingComments
The boilerplate argument doesn't quite apply here. r3bl-cmdr uses a specific macro system for state updates that bypasses the manual reducer patterns seen in early Elm ports.
Wait... if it's using Tokio for the event loop... does that introduce any input lag for simple key-presses compared to a synchronous loop? I wonder how that feels in practice...
Who cares about a few milliseconds of lag? The productivity gain from a declarative UI is massive. Why are we still handwriting every frame update in 2026?
If the event loop is async, perhaps it allows for better integration with network-bound TUI apps. It could potentially handle real-time data streams without blocking the UI thread at all.
Rust's borrow checker usually makes a global state store a nightmare without heavy use of Arc and Mutex. This architecture will likely hit a wall once you have deeply nested components requiring mutable access.
If it's a nightmare for the borrow checker, does that mean the build times are going to be atrocious? I just need to know if I can actually iterate on a project without waiting ten minutes for a compile.
Reminds me of the early Elm-architecture attempts in other languages. They always promise clean state separation until the boilerplate for simple updates becomes a full-time job.