GUI Best Practices
Responsive, portable, maintainable desktop applications in Rust.
Search across all documentation pages
Responsive, portable, maintainable desktop applications in Rust.
main.rs god files do not scale.std::io::ErrorKind to user text.dark-light detection.invoke abuse.keyring crate per platform.Tauri if team knows web; iced for native MVU; egui for tools - see GUI Basics.
Blocking UI thread - always channel async results back to render loop.
Rust commands are trust boundary; CSP and scoped FS contain web content risks.
Unit test domain; integration test commands; manual VM install test per release.
Accept minor platform differences; document macOS vs Windows shortcut labels.
Register in installer manifest for custom extensions - platform-specific setup.
Queue network ops; show offline banner; sync on reconnect with conflict rules.
Virtualize rows in web UI; paginate or window in egui/iced tables.
Manual download page or third-party updater - still require signature verify.
State & Architecture for MVU and channels.
Stack versions: This page was written for Rust 1.97.0 (edition 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, and Polars 0.46+.
Reviewed by Chris St. John·Last updated Jul 19, 2026