dioxus/packages/desktop/src
2023-07-19 13:52:27 -07:00
..
assets fix: Update logos and custom assets example (#960) 2023-04-15 08:02:04 -05:00
cfg.rs add functionality 2023-07-04 14:47:45 +02:00
desktop_context.rs put webview in rc 2023-06-30 14:39:38 -07:00
element.rs Fix merge errors 2023-06-30 12:48:25 -07:00
escape.rs Renderers are now packages, not features. (#387) 2022-07-09 15:15:20 -04:00
eval.rs Generalize Query system for use in use_eval and node querys 2023-03-23 15:19:00 -05:00
events.rs feat: return window 2022-12-31 12:19:21 -05:00
file_upload.rs Move filedialog code into cfg-ed out folder 2023-07-19 13:52:27 -07:00
index.html feat: allow customizing the index and head 2022-04-16 16:53:47 -04:00
lib.rs fix clippy hinting around trait 2023-07-06 10:57:52 -07:00
mobile_shortcut.rs Stub out files and RFD on ios 2023-06-30 13:59:48 -07:00
protocol.rs Changed underlying directory attribute to webkitdirectory, fixed attribute parsing to properly toggle it. 2023-06-06 08:06:27 +08:00
query.rs Increase the number of tokio channels for the query engine from 8 to 1000. (#1095) 2023-06-19 09:26:02 -05:00
readme.md update docs about dioxus desktop 2023-03-01 13:28:04 -06:00
shortcut.rs FIx desktop for android 2023-07-05 12:49:41 -07:00
waker.rs feat: multiwindow support 2022-12-30 22:05:15 -05:00
webview.rs Merge pull request #945 from ProfXwing/return-context 2023-06-30 12:10:03 -07:00

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(cx: Scope) -> Element {
    cx.render(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!