Dioxus
SKILL.md
Dioxus 0.7.3 Knowledge Patch
Claude's baseline knowledge covers Dioxus through 0.6.3. This skill provides 0.7.3 features.
Quick Reference
New in 0.7.3
| Feature | Description |
|---|---|
| Subsecond Hot-Patching | Full Rust code hot-reload via jump table |
| WASM Splitting | Lazy-load chunks for faster initial load |
| Manganis Assets | asset!() macro with optimization & cache-busting |
| Stores | Nested reactivity with path-based subscriptions |
Subsecond Hot-Patching
Full Rust hot-reload without restart. Functions called through jump table that gets patched.
// Standard Dioxus - automatic
fn main() {
dioxus::launch(app);
}
// Non-Dioxus apps
fn main() {
dioxus_devtools::connect_subsecond();
loop {
dioxus_devtools::subsecond::call(|| handle_request());
}
}
Limitations: No struct changes (size/alignment), thread-locals reset, only tip crate patches.
See references/subsecond-hotpatch.md.
WASM Code Splitting
Split large WASM binaries into lazy-loaded chunks.
#[wasm_split(admin_panel)]
async fn load_admin_panel() -> AdminPanel {
AdminPanel::new() // In separate module_admin_panel.wasm
}
async fn handle_route(route: Route) {
if let Route::Admin = route {
let panel = load_admin_panel().await;
panel.render();
}
}
Key points: Split points must be async, memory shared, requires --emit-relocs.
See references/wasm-split.md.
Manganis Assets
Compile-time asset management with optimization.
let img = asset!("/assets/image.png");
let css = asset!("/assets/style.css", AssetOptions::css().minified());
rsx! {
img { src: "{img}" }
link { rel: "stylesheet", href: "{css}" }
}
CSS Modules:
css_module!(Styles = "/my.module.css", AssetOptions::css_module());
rsx! { div { class: Styles::header } }
See references/manganis-assets.md.
Stores (Nested Reactivity)
Granular path-based subscriptions for nested data.
| Scenario | Use |
|---|---|
| Scalar state | Signal |
| Nested structures with granular updates | Store |
#[derive(Store, Clone)]
struct TodoItem {
checked: bool,
contents: String,
}
let store = Store::new(TodoItem { checked: false, contents: "Buy milk".into() });
// Subscribe only to `checked` field
let checked = store.checked();
rsx! { input { checked: checked.read() } }
// Changing `contents` won't re-render above
store.contents().set("Buy eggs".into());
See references/stores-signals.md.
Renderers
| Renderer | Package | Use Case |
|---|---|---|
| Web | dioxus-web | WASM/browser via Sledgehammer JS |
| Desktop | dioxus-desktop | Wry/Tao webview |
| Native | dioxus-native | Blitz/Vello GPU (not a browser) |
| LiveView | dioxus-liveview | WebSocket streaming |
| SSR | dioxus-ssr | Server-side HTML rendering |
All implement WriteMutations trait.
See references/renderers.md.
Workspace Structure
packages/
├── dioxus/ # Main re-export crate
├── core/ # VirtualDOM, components, diffing
├── rsx/ # RSX macro parsing
├── signals/ # Reactive state (Signal, Memo, Store)
├── hooks/ # Built-in hooks
├── router/ # Type-safe routing
├── fullstack/ # SSR, hydration, #[server]
├── cli/ # `dx` build tool
├── web/ # WASM renderer
├── desktop/ # Wry/Tao webview
├── native/ # Blitz/Vello GPU renderer
├── liveview/ # WebSocket streaming
├── manganis/ # asset!() macro
├── subsecond/ # Hot-patching system
└── wasm-split/ # WASM code splitting
Patterns (Unchanged from 0.5-0.6)
Components:
#[component]
fn MyComponent(name: String) -> Element {
let mut count = use_signal(|| 0);
rsx! { button { onclick: move |_| count += 1, "{name}: {count}" } }
}
Server Functions:
#[server]
async fn get_data(id: i32) -> Result<Data, ServerFnError> {
// Runs on server, auto-RPC from client
}
Routing:
#[derive(Routable, Clone)]
enum Route {
#[route("/")]
Home {},
#[route("/blog/:id")]
Blog { id: usize },
}
Architecture
- WriteMutations: Trait all renderers implement for DOM changes
- Generational-box: Provides
Copysemantics for signals - ReactiveContext: Tracks signal reads for subscription
- Template-based: RSX compiles to static templates, only dynamic parts diffed
Reference Files
| File | Contents |
|---|---|
references/subsecond-hotpatch.md |
Hot-patching architecture, ASLR, limitations |
references/wasm-split.md |
WASM splitting pipeline, runtime loader |
references/manganis-assets.md |
Asset processing, binary patching, CSS modules |
references/stores-signals.md |
Store derive, subscription tree, memory model |
references/renderers.md |
WriteMutations trait, renderer differences |
Weekly Installs
3
Repository
nevaberry/nevab…-pluginsGitHub Stars
7
First Seen
Jan 26, 2026
Installed on
opencode3
claude-code3
antigravity3
gemini-cli3
github-copilot2
cursor1