Jonathan Kelley 318cae7bf8 Merge pull request #1727 from ealmloff/video-streaming vor 1 Jahr
..
assets c113d96bbe fix: Update logos and custom assets example (#960) vor 2 Jahren
cfg.rs 6a705b6a0e add functionality vor 2 Jahren
desktop_context.rs 1002bc955b Replace AssetHandlerId with slab and usize vor 1 Jahr
element.rs 6210c6fefe Convert use_eval to use send/recv system (#1080) vor 1 Jahr
escape.rs d9546d9504 Renderers are now packages, not features. (#387) vor 3 Jahren
eval.rs 6210c6fefe Convert use_eval to use send/recv system (#1080) vor 1 Jahr
events.rs 22e71a71bd feat: return window vor 2 Jahren
file_upload.rs b1a4ac48d4 Move filedialog code into cfg-ed out folder vor 1 Jahr
index.html 049976d23a feat: allow customizing the index and head vor 3 Jahren
lib.rs 73637987f3 Merge pull request #1719 from willcrichton/dev vor 1 Jahr
mobile_shortcut.rs d1575b40d1 fix mobile build vor 1 Jahr
protocol.rs dfb118e06c make the video streaming async vor 1 Jahr
query.rs c55c17cb81 switch to tracing for logging vor 1 Jahr
readme.md 7f8c963cd9 fix: Update doc links from v3 to v4 vor 1 Jahr
shortcut.rs d1575b40d1 fix mobile build vor 1 Jahr
waker.rs 880aa737a6 feat: multiwindow support vor 2 Jahren
webview.rs 7649ad84a1 allow asset handlers to read the whole request vor 1 Jahr

readme.md

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!