WebAssembly
Perché Rust?
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.
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.
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!
Scopri di più sulla virtual machine chiamata WebAssembly, veloce, sicura e open; leggi lo standard.
Scopri di piùScopri come costruire, fare debug, profilare e fare deploy di applicazioni WebAssembly in Rust!
Leggi il LibroScopri 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
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
[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