| name | code:rust-dioxus |
| description | Build Dioxus desktop GUI apps in Rust. Signals, components, hooks, async patterns, RSX, and state management.
<example>
Context: User is building a Dioxus app
user: "add a search component to this dioxus app"
</example>
<example>
Context: User needs Dioxus patterns
user: "how do I manage global state in dioxus"
</example>
|
Rust GUI Development (Dioxus)
Best practices for Rust desktop applications using Dioxus.
Project Structure
project/
├── Cargo.toml # Workspace root
├── src/ # Library crate (shared types, clients)
│ └── lib.rs
├── desktop/ # GUI crate (isolated)
│ ├── Cargo.toml
│ ├── Dioxus.toml # Window settings, asset dir
│ ├── assets/
│ │ └── tailwind.css
│ └── src/
│ ├── main.rs # Entry, global hooks
│ ├── state.rs # All Signal<T> definitions
│ └── components/ # UI components
Key Rule: Desktop GUI is a separate crate. Share only types and clients.
Dependencies
[dependencies]
dioxus = { version = "0.6", features = ["desktop"] }
dioxus-primitives = { git = "https://github.com/DioxusLabs/components" }
dioxus-free-icons = { version = "0.10", features = ["font-awesome-solid", "lucide"] }
[dev-dependencies]
dioxus-ssr = "0.6"
wiremock = "0.6"
Primitives First
Always use components. Don't build custom versions.