Crate dioxus_desktop

Source
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§

pub use tao;
pub use wry;

Modules§

launch
The main entrypoint for this crate

Structs§

Config
The configuration for the desktop application.
DesktopService
An imperative interface to the current window.
LogicalPosition
A position represented in logical pixels.
LogicalSize
A size represented in logical pixels.
RequestAsyncResponder
Resolves a custom protocol Request asynchronously.
ShortcutHandle
An global id for a shortcut.
WindowBuilder
Object that allows you to build windows.
WryEventHandler
The unique identifier of a window event handler. This can be used to later remove the handler.

Enums§

ShortcutRegistryError
An error that can occur when registering a shortcut.
WindowCloseBehaviour
The behaviour of the application when the last window is closed.
WindowEvent
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_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§

AssetRequest
A request for an asset within dioxus-desktop.
DesktopContext
A handle to the DesktopService that can be passed around.
WeakDesktopContext
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.