Skip to content

Latest commit

 

History

History
184 lines (139 loc) · 10 KB

README.md

File metadata and controls

184 lines (139 loc) · 10 KB


💡 Este é um documento traduzido voluntariamente. Se você viu erros de tradução e/ou erros de digitação, entre em contato: @amindWalker, GMail ou melhor ainda, envie um PR.


Dioxus é um framework ergonômico para construir interfaces de forma portátil, rápida, escalável e robusta com a linguagem de programação Rust.

fn app() -> Element {
    let mut count = use_signal(|| 0);

    rsx! {
        h1 { "High-Five counter: {count}" }
        button { onclick: move |_| count += 1, "Up high!" }
        button { onclick: move |_| count -= 1, "Down low!" }
    })
}

O Dioxus pode ser usado para desenvolver aplicativos Web, Desktop, sites estáticos, TUI, LiveView e mais. O Dioxus é inteiramente agnóstico de renderizador e pode ser usado como uma plataforma para qualquer renderizador.

Se você conhece React, então você já conhece o Dioxus.

Funções Únicas:

  • Aplicativos Desktop rodam nativamente (sem ElectronJS!) em menos de 10 linhas de código.
  • Incrivelmente ergonômico e um poderoso gerenciador de estados.
  • Documentação compreensiva - guias e explicações ao apontar o mouse para todos os elementos HTML e eventos.
  • Extremamente eficiente em memória - 0 alocações globais para componentes com estado-estável.
  • Agendamento assíncrono de canais-múltiplos para suporte de async de primera-classe.
  • E mais! Leia as publicações de lançamento.

Começando com...

Tutorial Web Desktop SSR Móvel

Projetos de Exemplo:

Navegador de Arquivos (Desktop) WiFi Scanner (Desktop) TodoMVC (Todas as Plataformas) E-commerce com Tailwind (SSR/LiveView)
Explorador de Arquivos Wifi Scanner Demo TodoMVC example Exemplo de E-commerce

Veja a página awesome-dioxus para uma lista curada do conteúdo dentro do ecossistema do Dioxus.

Porquê o Dioxus e porquê o Rust?

TypeScript é uma adição fantástica ao JavaScript, mas ainda é fundamentalmente JavaScript. TS executa ligeiramente mais devagar, tem várias opções de configurações diferentes e nem todos os pacotes estão propriamente tipados.

Apenas por usar o Rust, nós ganhamos:

  • Tipos estáticos para todas as bibliotecas por padrão
  • Imutabilidade por padrão
  • Um sistema de módulos simples e intuitivo
  • Documentação integrada na própria linguagem (go to source de fato vai até a fonte)
  • Padrões de combinação avançados
  • Iteradores limpos, eficientes e combináveis
  • Testes de Unidade/Integração em linha integrados à linguagem
  • O melhor da classe em Tratamento de Erros
  • Biblioteca padrão poderosa e sensata
  • Sistema de macros flexível
  • Acesso ao crates.io

Especificamente, o Dioxus providencia para nós muitas outras garantias:

  • Estrutura de Dados imutável apropriada
  • Garantias para Tratamento de Erros (assim você pode dormir em paz à noite sem se preocupar com erros do tipo undefined)
  • Desempenho móvel nativo
  • Acesso direto ao sistema de Entrada/Saída (IO)

E muito mais. Dioxus faz com que aplicativos em Rust sejam rápidos de escrever como os de React, mas permite mais robustez dando ao sua equipe frontend mais confiança em desenvolver grandes mudanças em pouco tempo.

Porquê não o Dioxus?

Você não deve usar o Dioxus se:

  • Você não gosta da metodologia do React Hooks para o frontend
  • Você precisa de um renderizador personalizado
  • Você quer suporte para navegadores que não tenham suporte ao WASM ou asm.js
  • Você precisa de uma solução Send + Sync (o Dioxus ainda não é thread-safe)

Comparação com outras frameworks de UI em Rust:

Dioxus primeiramente enfatiza a experiência do desenvolvedor e a familiaridade com os princípios do React.

  • Yew: prefere o padrão elm, não há props emprestadas, suporta SSR (sem hydration), sem suporte direto para Desktop/Móvel.
  • Percy: suporta SSR, mas com menos ênfase em gerenciamento de estado e tratamento de eventos.
  • Sycamore: sem VirtualDOM usando controle preciso de reatividade, mas sem suporte direto à aplicativos Desktop/Móvel.
  • Dominator: alternativa zero-custo baseada em sinais, menos ênfase em comunidade e documentação.
  • Azul: renderizador HTML/CSS totalmente nativo para aplicações Desktop, sem suporte para Web/SSR.

Paridade com React e Progresso

Dioxus é fortemente inspirado pelo React, mas nós queremos que sua transição pareça como um aprimoramento. Dioxus está quase lá, mas ainda faltam alguma funções chave. Isto inclui:

  • Portais
  • Suspensão integrada ao SSR
  • Componentes de Servidor / Segmentador de Pacotes / Execução Tardia (Lazy)

Dioxus é único no ecossistema do Rust por suportar:

  • Componentes com propriedade que são emprestadas dos seus parentes
  • SSR com hydration feito pelo Cliente
  • Suporte à aplicação Desktop

Para mais informações sobre quais funções estão atualmente disponíveis e para o progresso futuro, veja O Guia.

Projeto dentro do ecossistema Dioxus

Quer adentrar e ajudar a construir o futuro do frontend em Rust? Há um vasto número de lugares em que você pode contribuir e fazer uma grande diferença:

Licença

Este projeto é licenciado sob a licença MIT.

Contribuições

A menos que você explicitamente ateste o contrário, qualquer contribuição feita ao Dioxus por você será licenciada de acordo com a licença MIT sem nenhum outro termo ou condição.