Web­Assembly

Perché Rust?

Ingranaggi

Prestazioni predicibili

Nessuna pausa improvvisa dovuta al garbage collector. Nessun calo improvviso di prestazioni dovuto al compilatore JIT. Avrai invece un controllo di basso livello e a una ergonomicità di alto livello.

Un microscopio

Codice generato di piccole dimensioni

Codice generato di piccole dimensioni significa caricare la pagina più velocemente. Un file .wasm non include roba inutile, come un garbage collector: ottimizzazioni spinte e ripulitura dal codice inutilizzato.

Valigia

Comodità moderne

Un ecosistema vivace di librerie che ti aiutano a partire a tutto gas. Astrazioni espressive e a costo zero. E una community accogliente che ti aiuta a imparare.

Inizia!

Logo WebAssembly

Scopri di più sulla virtual machine chiamata WebAssembly, veloce, sicura e open; leggi lo standard.

Scopri di più
wasm ferris

Scopri come costruire, fare debug, profilare e fare deploy di applicazioni WebAssembly in Rust!

Leggi il Libro
Logo MDN

Scopri di più su WebAssembly sul Mozilla Developer Network.

Scopri di più

A fianco del JavaScript

Aggiungi, non sostituire

Il sogno del WebAssembly non è far fuori il tuo JavaScript ma di lavorarci insieme, dando una super-carica in task impegnativi o di basso livello, che beneficiano di tutte le prestazioni di Rust.

Utilizza strumenti familiari

Pubblica pacchetti Rust in WebAssembly su repository come npm. Crea bundle con webpack, Parcel e altro ancora. Fai manutenzione con strumenti come npm audit e Greenkeeper.

Interoperabilità senza interruzioni

Genera automaticamente i binding fra le API Rust, WebAssembly e JavaScript. Approfitta di librerie come web-sys che forniscono binding pre-impacchettati per l'intera piattaforma web.

Uso in produzione

logo cloudflare
Compiliamo da Rust a WASM per invocare funzioni Serveless direttamente dal cuore di Internet. E' incredibile: non vedo l'ora di aggiungerne altre.

– Steven Pack, Serverless Rust with Cloudflare Workers

L'implementazione in JavaScript [della libreria source-map] si è fatta complessa a causa delle varie ottimizzazioni; l'abbiamo sostituita con del codice idiomatico in Rust. Rust non ci obbliga a scegliere fra scrivere codice espressivo e prestazioni a runtime.

– Nick Fitzgerald, Oxidizing Source Maps with Rust and WebAssembly

dropbox
[Le proprietà di Rust] fanno in modo che sia facile fare embed del codec DivANS in una pagina web, come mostrato sopra.

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