WebAssembly (WASM) é um formato de código binário de baixo nível portátil que é executado em navegadores modernos, assim como o JavaScript. Na verdade, o WebAssembly também é interoperável com JavaScript. Você pode transpilar a maior parte do código-fonte do programa para o WebAssembly e executá-lo no navegador com ou sem JavaScript.

Rust é rápido, tornando a linguagem uma opção viável para a construção de programas WebAssembly. Existem muitas bibliotecas e estruturas Rust para ajudar, com suporte para as ferramentas que você usa para criar aplicativos da Web.

1. A Biblioteca Sicômoro

Sicômoro é uma estrutura reativa semelhante ao SolidJS, rápida, ergonômica e intuitiva. Você pode usá-lo para criar aplicativos da Web em Rust que aproveitam o poder do WebAssembly. O Sycamore fornece a maioria das funcionalidades necessárias para criar um front-end de aplicativo da Web em Rust, portanto, você não precisará escrever JavaScript.

Sycamore também fornece um roteador e interoperabilidade JavaScript sobre Wasm-Bindgen usando JS-sys ou Web-Sys. O projeto pretende liberar testes e funcionalidades CSS em breve.

Para usar o Sycamore, você precisará de uma versão recente do Rust - o wasm32-desconhecido-desconhecido alvo. Você também precisará do Trunk para construir e agrupar seu aplicativo. Como o Sycamore é novo, será arriscado usar a biblioteca do branch principal em produção, exceto se você recorrer a uma versão anterior.

2. A estrutura do teixo

Teixo é uma estrutura Rust para criar aplicativos Web front-end multithread usando WebAssembly. Ele permite que você escreva código Rust e transpile seu código Rust para WASM, que pode ser executado em qualquer dispositivo com suporte a WASM. Yew é interoperável com JavaScript (você pode usar seu pacotes npm), e o framework fornece uma macro para interagir com elementos HTML com Rust, como JSX em React.

Você pode começar a usar o Yew usando o empacotador de aplicativos Trunk ou WASMpack. Confira a documentação para saber como começar, interagir com HTML e APIs DOM e transpile seu código Rust para o WebAssembly.

O projeto Yew é muito popular, com mais de vinte mil estrelas no Github e cinco mil usuários. Yew é estável, mas o projeto não está pronto para produção e a base de código está mudando, então você pode ter erros e interrupções.

3. A Biblioteca Percy

Percy é uma coleção de bibliotecas Rust para a construção de aplicativos web front-end desenvolvidos pelo WebAssembly. Percy suporta renderização instantânea do lado do servidor. O projeto se destaca na criação de aplicativos de página única (SPAs) amigáveis ​​aos mecanismos de pesquisa.

Percy fornece uma html! macro para gerar DOMs virtuais. Você pode renderizá-los em elementos DOM no frontend ou usá-los para operações no backend do seu aplicativo.

Percy ainda é muito novo e, embora a biblioteca não esteja pronta para produção, o projeto é muito popular, com mais de duas mil estrelas no Github.

4. A estrutura da semente

Semente é uma estrutura de pilha completa alimentada por WebAssembly com baterias para criar aplicativos da Web rápidos em Rust. A estrutura Seed fornece um sistema de modelagem que usa uma sintaxe de macro em vez da sintaxe do tipo JSX do Yew. Ele também possui um sistema de gerenciamento de estado integrado para aumentar a produtividade.

A semente é nova e componentes pré-construídos, como seletores de data, são raros. Embora o Seed atualmente não suporte renderização do lado do servidor, o projeto pretende incluí-lo em breve. Caso contrário, o Seed possui recursos completos e você pode criar aplicativos da Web prontos para produção com ele. O Seed também usa a arquitetura Elm com configuração mínima. Você pode construir e agrupar seus aplicativos usando Trunk, Web Bundler ou Seeder.

Você também pode usar o Seed para o back-end do seu aplicativo da web. Seed fornece funcionalidade para construir APIs REST ou GraphQL com suporte a roteamento e autenticação e integração AuthO.

MoonZoon é uma estrutura compatível com WebAssembly, full-stack e fácil de usar para aplicativos front-end e back-end. Você pode escrever Rust sem precisar escrever HTML, CSS e JavaScript no frontend ou REST, GraphQL ou SQL no backend. MoonZoon é rápido, simples, escalável e amigável para SEO. Ele fornece um aplicativo CLI para criar aplicativos da Web fáceis de implantar.

A filosofia do projeto MoonZoon é criar uma ferramenta muito simples, sem terminologia especial, barreiras artificiais ou dogmas. Ao usá-lo, você pode se concentrar na criação de aplicativos da Web como quiser. Você precisará ter o WASM-Pack instalado para construir o front-end. O back-end de um aplicativo MoonZoon é executado em Actix-web e Warp, ambas estruturas de back-end Rust populares. MoonZoon também fornece funcionalidade de autenticação.

A documentação do MoonZoon não está hospedada no momento. Para usar a ferramenta, você pode conferir os arquivos markdown no documentos pasta através do projeto Repositório do GitHub.

Você pode ter interagido com o WebAssembly

O WebAssembly foi lançado pela primeira vez em 2017 e o World Wide Web Consortium (W3C) tornou o WebAssembly um padrão da Web em 2019. Desde 2019, empresas como Cloudflare, Google e Dropbox usam a tecnologia em produção.

O Google Earth usa o WebAssembly, o Cloudflare o usa para Cloudflare Workers e o Dropbox usa o WebAssembly para um codec em seu site.