Aplicativo de área de trabalho

Crie um aplicativo de desktop nativo autônomo que tenha a mesma aparência em todos os sistemas operacionais.

Os aplicativos criados com o Dioxus geralmente têm menos de 5 MB de tamanho e usam os recursos existentes do sistema, para que não consumam quantidades extremas de RAM ou memória.

Exemplos:

[Exemplo do Explorador de Arquivos](https://github.com/DioxusLabs/example-projects/tree /master/file-explorer)

Suporte

O desktop é uma plataforma poderosa para o Dioxus, mas atualmente é limitado em capacidade quando comparado à plataforma Web. Atualmente, os aplicativos de desktop são renderizados com a biblioteca WebView da própria plataforma, mas seu código Rust está sendo executado nativamente em um thread nativo. Isso significa que as APIs do navegador não estão disponíveis, portanto, renderizar WebGL, Canvas, etc. não é tão fácil quanto a Web. No entanto, as APIs do sistema nativo são acessíveis, portanto, streaming, WebSockets, sistema de arquivos, etc., são todas APIs viáveis. No futuro, planejamos migrar para um renderizador DOM personalizado baseado em webrenderer com integrações WGPU.

O Dioxus Desktop é construído a partir do Tauri. No momento, não há abstrações do Dioxus sobre atalhos de teclado, barra de menus, manuseio, etc., então você deve aproveitar o Tauri - principalmente Wry e Tao) diretamente.

Criando um projeto

Crie uma nova caixa:

cargo new --bin demo
cd demo

Adicione o Dioxus com o recurso desktop (isso irá editar o Cargo.toml):

cargo add dioxus
cargo add dioxus-desktop

Edite seu main.rs:

#![allow(non_snake_case)]
// import the prelude to get access to the `rsx!` macro and the `Scope` and `Element` types
use dioxus::prelude::*;

fn main() {
    // launch the dioxus app in a webview
    dioxus_desktop::launch(App);
}

// define a component that renders a div with the text "Hello, world!"
fn App(cx: Scope) -> Element {
    cx.render(rsx! {
        div {
            "Hello, world!"
        }
    })
}