Web­Assembly

Por que Rust?

Engrenagens

Desempenho previsível

Sem pausas imprevisíveis pelo Garbage Collector. Sem quedas de performance causadas pelo compilador JIT. Apenas controle de baixo nível acompanhado de ergonomia de alto nível.

Um microscópio

Código pequeno

Código pequeno significa páginas carregando mais rápidamente. wasm gerado por Rust não inclui nada extra, como um garbage collector. Otimizações avançadas e técnica de tree shaking para remoção de código não usado.

Bagagem

Amenidades modernas

Um ecossistema ativo de bibliotecas para te ajudar a começar seus projetos rapidamente. Expressivo, abstrações de custo zero. E uma comunidade acolhedora para te ajudar a aprender.

Comece agora!

Logo de WebAssembly

Aprenda mais sobre a máquina virtual rápida, segura e aberta, chamada WebAssembly, e leia as suas normas.

Aprenda mais
wasm ferris

Aprenda a criar, depurar, perfilar e implantar aplicações WebAssembly usando Rust!

Leia O Livro
Logo MDN

Aprenda mais sobre WebAssembly na Rede de Desenvolvimento da Mozilla (MDN).

Confira

Funciona bem com JavaScript

Melhore, não substitua

O sonho do WebAssembly não é acabar com o JavaScript, mas sim trabalhar junto para ajudar a lidar com tarefas de processamento pesado ou de baixo nível — tarefas que se beneficiam do foco de Rust em performance.

Funciona com conjunto de ferramentas familiares

Publique pacotes de Rust WebAssembly em registros de pacotes como npm. Integre com o webpack, Parcel, e outros. Mantenha seus pacote com ferramentas como npm audit e Greenkeeper.

Interoperabilidade homogênea

Gere automaticamente integração entre Rust, WebAssembly, e JavaScript. Aproveite de bibliotecas como web-sys que provê integrações pré-empacotadas para toda a plataforma web.

Uso em produção

logo da cloudflare
Você pode compilar Rust para WASM, e chamar o código a partir de funções Serverless amarradas as fundações da Internet. Isso é incrível e mal posso esperar para trabalhar mais nisso.

– Steven Pack, Serverless Rust with Cloudflare Workers

A implementação em JavaScript [da biblioteca de source-map] acumulou muito código complicado em nome de performance, e nos trocamos isso por código idiomático em Rust. Rust não nos força escolher entre expressar claramente nossas intenções e performance durante execução.

– Nick Fitzgerald, Oxidizing Source Maps with Rust and WebAssembly

dropbox
As propriedades [do Rust] torna fácil embarcar o codec DivANS em uma página web com WASM, como mostramos acima.

– Daniel Reiter Horn e Jongmin Baek, Building Better Compression Together with DivANS