{"owner":"DioxusLabs","repo":"dioxus","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# Dioxus Agent Guide\n\nDioxus is a cross-platform UI framework for Rust, similar to React. It compiles to web (WASM), desktop (webview), mobile (iOS/Android), and native (GPU-rendered).\n\n## Quick Overview\n\n- **Language**: Rust (stable toolchain)\n- **UI Model**: React-like with VirtualDOM, components, hooks, signals\n- **Syntax**: JSX-like `rsx!` macro for declaring UI\n- **Platforms**: Web, Desktop (Windows/macOS/Linux), Mobile, Native, LiveView (server-rendered)\n\n## Workspace Structure\n\n```\npackages/\n├── dioxus/           # Main re-export crate users depend on\n├── core/             # VirtualDOM, components, diffing, scheduling\n├── rsx/              # RSX macro parsing and code generation\n├── rsx-hotreload/    # Template diffing for hot-reload\n├── signals/          # Reactive state (Signal, Memo, Store)\n├── hooks/            # Built-in hooks (use_signal, use_effect, etc.)\n├── router/           # Type-safe routing with #[derive(Routable)]\n├── fullstack/        # SSR, hydration, #[server] functions\n├── cli/              # `dx` build tool, dev server, bundling\n├── web/              # WASM renderer\n├── desktop/          # Wry/Tao webview renderer\n├── native/           # Blitz/Vello GPU renderer\n├── liveview/         # WebSocket streaming renderer\n├── manganis/         # asset!() macro for compile-time assets\n├── subsecond/        # Hot-patching system (jump table indirection)\n├── devtools/         # Dev server communication protocol\n├── interpreter/      # Sledgehammer JS for DOM mutations\n└── wasm-split/       # WASM code splitting\n```\n\n## Architecture Documentation\n\nFor deeper understanding, see `notes/architecture/`:\n\n| When working on...                         | Read...            |\n| ------------------------------------------ | ------------------ |\n| VirtualDOM, components, diffing, events    | `01-CORE.md`       |\n| CLI, build system, bundling, dev server    | `02-CLI.md`        |\n| RSX macro, parsing, formatting             | `03-RSX.md`        |\n| Signals, state management, reactivity      | `04-SIGNALS.md`    |\n| Server functions, SSR, hydration           | `05-FULLSTACK.md`  |\n| Web/desktop/native/liveview renderers      | `06-RENDERERS.md`  |\n| Hot-reload, hot-patching, devtools         | `07-HOTRELOAD.md`  |\n| Asset macro, manganis, const serialization | `08-ASSETS.md`     |\n| Router, navigation, nested routes          | `09-ROUTER.md`     |\n| WASM code splitting                        | `10-WASM-SPLIT.md` |\n\n## Key Concepts\n\n- **VirtualDOM**: Tree of `VNode` with templates, dynamic nodes, and attributes\n- **Signals**: Copy-able reactive primitives via generational-box (generation-based validity)\n- **WriteMutations**: Trait that renderers implement to apply DOM changes\n- **RSX**: Proc macro that compiles JSX-like syntax to `VNode` construction\n- **Server Functions**: `#[server]` macro generates client RPC stubs and server handlers\n- **Subsecond**: Hot-patches Rust code via jump table indirection (no memory modification)\n- **Manganis**: `asset!(\"/main.css\")` macro for including assets by embedding data via linker symbols\n\n## Common Patterns\n\n**Component definition**:\n```rust\n#[component]\nfn MyComponent(name: String) -> Element {\n    let mut count = use_signal(|| 0);\n    rsx! {\n        button { onclick: move |_| count += 1, \"{name}: {count}\" }\n    }\n}\n```\n\n## Notes for Agents\n\n1. The `dioxus` crate re-exports from other crates - most implementation is in `packages/core`, `packages/signals`, etc.\n2. RSX macro expansion happens in `packages/rsx` - look there for syntax questions\n3. Each renderer implements `WriteMutations` differently - see `06-RENDERERS.md`\n4. Hot-reload has two systems: RSX template diffing (fast) and Subsecond code patching (full Rust)\n5. Assets use link sections and binary patching - the `asset!()` macro creates symbols the CLI processes\n"},"files":{"AGENTS.md":"# Dioxus Agent Guide\n\nDioxus is a cross-platform UI framework for Rust, similar to React. It compiles to web (WASM), desktop (webview), mobile (iOS/Android), and native (GPU-rendered).\n\n## Quick Overview\n\n- **Language**: Rust (stable toolchain)\n- **UI Model**: React-like with VirtualDOM, components, hooks, signals\n- **Syntax**: JSX-like `rsx!` macro for declaring UI\n- **Platforms**: Web, Desktop (Windows/macOS/Linux), Mobile, Native, LiveView (server-rendered)\n\n## Workspace Structure\n\n```\npackages/\n├── dioxus/           # Main re-export crate users depend on\n├── core/             # VirtualDOM, components, diffing, scheduling\n├── rsx/              # RSX macro parsing and code generation\n├── rsx-hotreload/    # Template diffing for hot-reload\n├── signals/          # Reactive state (Signal, Memo, Store)\n├── hooks/            # Built-in hooks (use_signal, use_effect, etc.)\n├── router/           # Type-safe routing with #[derive(Routable)]\n├── fullstack/        # SSR, hydration, #[server] functions\n├── cli/              # `dx` build tool, dev server, bundling\n├── web/              # WASM renderer\n├── desktop/          # Wry/Tao webview renderer\n├── native/           # Blitz/Vello GPU renderer\n├── liveview/         # WebSocket streaming renderer\n├── manganis/         # asset!() macro for compile-time assets\n├── subsecond/        # Hot-patching system (jump table indirection)\n├── devtools/         # Dev server communication protocol\n├── interpreter/      # Sledgehammer JS for DOM mutations\n└── wasm-split/       # WASM code splitting\n```\n\n## Architecture Documentation\n\nFor deeper understanding, see `notes/architecture/`:\n\n| When working on...                         | Read...            |\n| ------------------------------------------ | ------------------ |\n| VirtualDOM, components, diffing, events    | `01-CORE.md`       |\n| CLI, build system, bundling, dev server    | `02-CLI.md`        |\n| RSX macro, parsing, formatting             | `03-RSX.md`        |\n| Signals, state management, reactivity      | `04-SIGNALS.md`    |\n| Server functions, SSR, hydration           | `05-FULLSTACK.md`  |\n| Web/desktop/native/liveview renderers      | `06-RENDERERS.md`  |\n| Hot-reload, hot-patching, devtools         | `07-HOTRELOAD.md`  |\n| Asset macro, manganis, const serialization | `08-ASSETS.md`     |\n| Router, navigation, nested routes          | `09-ROUTER.md`     |\n| WASM code splitting                        | `10-WASM-SPLIT.md` |\n\n## Key Concepts\n\n- **VirtualDOM**: Tree of `VNode` with templates, dynamic nodes, and attributes\n- **Signals**: Copy-able reactive primitives via generational-box (generation-based validity)\n- **WriteMutations**: Trait that renderers implement to apply DOM changes\n- **RSX**: Proc macro that compiles JSX-like syntax to `VNode` construction\n- **Server Functions**: `#[server]` macro generates client RPC stubs and server handlers\n- **Subsecond**: Hot-patches Rust code via jump table indirection (no memory modification)\n- **Manganis**: `asset!(\"/main.css\")` macro for including assets by embedding data via linker symbols\n\n## Common Patterns\n\n**Component definition**:\n```rust\n#[component]\nfn MyComponent(name: String) -> Element {\n    let mut count = use_signal(|| 0);\n    rsx! {\n        button { onclick: move |_| count += 1, \"{name}: {count}\" }\n    }\n}\n```\n\n## Notes for Agents\n\n1. The `dioxus` crate re-exports from other crates - most implementation is in `packages/core`, `packages/signals`, etc.\n2. RSX macro expansion happens in `packages/rsx` - look there for syntax questions\n3. Each renderer implements `WriteMutations` differently - see `06-RENDERERS.md`\n4. Hot-reload has two systems: RSX template diffing (fast) and Subsecond code patching (full Rust)\n5. Assets use link sections and binary patching - the `asset!()` macro creates symbols the CLI processes\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# Dioxus Agent Guide\n\nDioxus is a cross-platform UI framework for Rust, similar to React. It compiles to web (WASM), desktop (webview), mobile (iOS/Android), and native (GPU-rendered).\n\n## Quick Overview\n\n- **Language**: Rust (stable toolchain)\n- **UI Model**: React-like with VirtualDOM, components, hooks, signals\n- **Syntax**: JSX-like `rsx!` macro for declaring UI\n- **Platforms**: Web, Desktop (Windows/macOS/Linux), Mobile, Native, LiveView (server-rendered)\n\n## Workspace Structure\n\n```\npackages/\n├── dioxus/           # Main re-export crate users depend on\n├── core/             # VirtualDOM, components, diffing, scheduling\n├── rsx/              # RSX macro parsing and code generation\n├── rsx-hotreload/    # Template diffing for hot-reload\n├── signals/          # Reactive state (Signal, Memo, Store)\n├── hooks/            # Built-in hooks (use_signal, use_effect, etc.)\n├── router/           # Type-safe routing with #[derive(Routable)]\n├── fullstack/        # SSR, hydration, #[server] functions\n├── cli/              # `dx` build tool, dev server, bundling\n├── web/              # WASM renderer\n├── desktop/          # Wry/Tao webview renderer\n├── native/           # Blitz/Vello GPU renderer\n├── liveview/         # WebSocket streaming renderer\n├── manganis/         # asset!() macro for compile-time assets\n├── subsecond/        # Hot-patching system (jump table indirection)\n├── devtools/         # Dev server communication protocol\n├── interpreter/      # Sledgehammer JS for DOM mutations\n└── wasm-split/       # WASM code splitting\n```\n\n## Architecture Documentation\n\nFor deeper understanding, see `notes/architecture/`:\n\n| When working on...                         | Read...            |\n| ------------------------------------------ | ------------------ |\n| VirtualDOM, components, diffing, events    | `01-CORE.md`       |\n| CLI, build system, bundling, dev server    | `02-CLI.md`        |\n| RSX macro, parsing, formatting             | `03-RSX.md`        |\n| Signals, state management, reactivity      | `04-SIGNALS.md`    |\n| Server functions, SSR, hydration           | `05-FULLSTACK.md`  |\n| Web/desktop/native/liveview renderers      | `06-RENDERERS.md`  |\n| Hot-reload, hot-patching, devtools         | `07-HOTRELOAD.md`  |\n| Asset macro, manganis, const serialization | `08-ASSETS.md`     |\n| Router, navigation, nested routes          | `09-ROUTER.md`     |\n| WASM code splitting                        | `10-WASM-SPLIT.md` |\n\n## Key Concepts\n\n- **VirtualDOM**: Tree of `VNode` with templates, dynamic nodes, and attributes\n- **Signals**: Copy-able reactive primitives via generational-box (generation-based validity)\n- **WriteMutations**: Trait that renderers implement to apply DOM changes\n- **RSX**: Proc macro that compiles JSX-like syntax to `VNode` construction\n- **Server Functions**: `#[server]` macro generates client RPC stubs and server handlers\n- **Subsecond**: Hot-patches Rust code via jump table indirection (no memory modification)\n- **Manganis**: `asset!(\"/main.css\")` macro for including assets by embedding data via linker symbols\n\n## Common Patterns\n\n**Component definition**:\n```rust\n#[component]\nfn MyComponent(name: String) -> Element {\n    let mut count = use_signal(|| 0);\n    rsx! {\n        button { onclick: move |_| count += 1, \"{name}: {count}\" }\n    }\n}\n```\n\n## Notes for Agents\n\n1. The `dioxus` crate re-exports from other crates - most implementation is in `packages/core`, `packages/signals`, etc.\n2. RSX macro expansion happens in `packages/rsx` - look there for syntax questions\n3. Each renderer implements `WriteMutations` differently - see `06-RENDERERS.md`\n4. Hot-reload has two systems: RSX template diffing (fast) and Subsecond code patching (full Rust)\n5. Assets use link sections and binary patching - the `asset!()` macro creates symbols the CLI processes\n","category":"root","tokens":958}]}