WebAssembly
Pourquoi Rust ?
Des performances prévisibles
Pas d'interruption imprévisible à cause d’un ramasse-miettes. Pas de chute de performance liée à un compilateur JIT. Juste un contrôle de bas-niveau et un haut niveau d'ergonomie.
Code succinct
Un exécutable plus léger permet des chargements de page plus rapides. Les .wasm
générés par Rust n’incluent rien de superflu, comme un ramasse-miettes. Des optimisations avancées ainsi que du tree shaking suppriment le code mort.
Fonctionnalités modernes
Un écosystème vivant de bibliothèques pour vous aider à démarrer sur les chapeaux de roue. Des abstractions expressives à coût zéro. Et une communauté accueillante pour vous aider à apprendre.
Commencer !
Apprenez-en plus sur la machine virtuelle rapide, sûre et ouverte appelée WebAssembly, et lisez sa référence.
En savoir plusApprenez à construire, déboguer, profiler et déployer des applications WebAssembly avec Rust.
Lire le LivreEn savoir plus sur WebAssembly en consultant Mozilla Developer Network.
Jeter un œilFonctionne bien avec JavaScript
Améliorez, ne remplacez pas
Le rêve de WebAssembly n'est pas d'éliminer JavaScript, mais de collaborer étroitement pour doper les calculs lourds ou les tâches de bas niveaux — tâches qui bénéficient de l'efficacité de Rust.
Fonctionne avec les outils habituels
Publiez des paquets WebAssembly en Rust dans des dépôts comme npm. Regroupez-les et distribuez-les avec webpack, Parcel et bien d’autres. Maintenez-les avec des outils comme npm audit
et Greenkeeper.
Interopérabilité sans accroc
Générez automatiquement du code de liaison entre Rust, WebAssembly et l'API JavaScript. Tirez avantage de bibliothèques comme web-sys
qui fournissent des associations prédéfinies avec l'intégralité de la plateforme web.
Utilisation en production
Nous pouvons compiler Rust en WASM, et l'exécuter depuis des fonctions Serverless embarquées dans le cœur même d’Internet. C'est incroyable et je suis impatient d'en faire encore plus.
– Steven Pack, Serverless Rust with Cloudflare Workers
L'implémentation JavaScript [de la bibliothèque source-map
] avait accumulé du code alambiqué pour des raisons de performance, et nous l'avons remplacé par du code Rust idiomatique. Rust ne nous force pas à choisir entre exprimer clairement l'intention du programme et la performance.
– Nick Fitzgerald, Oxidizing Source Maps with Rust and WebAssembly
Les propriétés de [Rust] rendent facile l'intégration du codec DivANS dans une page web avec WASM, comme montré ci-dessus.
– Daniel Reiter Horn et Jongmin Baek, Building Better Compression Together with DivANS