Expand description
Dioxus Desktop Renderer
Render the Dioxus VirtualDom using the platform’s native WebView implementation.
§Desktop
One of Dioxus’ flagship features is the ability to quickly build a native desktop app that looks and feels the same across platforms. Apps built with Dioxus are typically <5mb in size and use existing system resources, so they won’t hog extreme amounts of RAM or memory.
Dioxus Desktop is built off Tauri. Right now there aren’t any Dioxus abstractions over the menubar, handling, etc, so you’ll want to leverage Tauri - mostly Wry and Tao directly. An upcoming release of Dioxus-Desktop will include components and hooks for notifications, global shortcuts, menubar, etc.
§Getting Set up
Getting Set up with Dioxus-Desktop is quite easy. Make sure you have Rust and Cargo installed, and then create a new project:
$ cargo new --bin demo
$ cd app
Add Dioxus and the desktop
renderer feature:
$ cargo add dioxus
$ cargo add dioxus-desktop
Edit your main.rs
:
// main.rs
use dioxus::prelude::*;
fn main() {
dioxus_desktop::launch(app);
}
fn app() -> Element {
rsx! {
div {
"hello world!"
}
}
}
To configure the webview, menubar, and other important desktop-specific features, checkout out some of the launch configuration in the API reference.
§Future Steps
Make sure to read the Dioxus Guide if you already haven’t!
Re-exports§
Modules§
Structs§
- Config
- The configuration for the desktop application.
- Desktop
Service - An imperative interface to the current window.
- Logical
Position - A position represented in logical pixels.
- Logical
Size - A size represented in logical pixels.
- Request
Async Responder - Resolves a custom protocol
Request
asynchronously. - Shortcut
Handle - An global id for a shortcut.
- Window
Builder - Object that allows you to build windows.
- WryEvent
Handler - The unique identifier of a window event handler. This can be used to later remove the handler.
Enums§
- Shortcut
Registry Error - An error that can occur when registering a shortcut.
- Window
Close Behaviour - The behaviour of the application when the last window is closed.
- Window
Event - Describes an event from a
Window
.
Functions§
- use_
asset_ handler - Provide a callback to handle asset loading yourself.
- use_
global_ shortcut - Get a closure that executes any JavaScript in the WebView context.
- use_
muda_ event_ handler Windows or Linux or macOS - Register an event handler that runs when a muda event is processed.
- use_
tray_ icon_ event_ handler Windows or Linux or macOS - Register an event handler that runs when a tray icon event is processed.
This is only for tray icon and not it’s menus.
If you want to register tray icon menus handler use
use_tray_menu_event_handler
instead. - use_
tray_ menu_ event_ handler Windows or Linux or macOS - Register an event handler that runs when a tray icon menu event is processed.
- use_
window - Get an imperative handle to the current window
- use_
wry_ event_ handler - Register an event handler that runs when a wry event is processed.
- window
- Get an imperative handle to the current window without using a hook
Type Aliases§
- Asset
Request - A request for an asset within dioxus-desktop.
- Desktop
Context - A handle to the
DesktopService
that can be passed around. - Weak
Desktop Context - A weak handle to the
DesktopService
to ensure safe passing. The problem without this is that the tao window is never dropped and therefore cannot be closed. This was due to the Rc that had still references because of multiple copies when creating a webview.