Web­Assembly

Pourquoi Rust ?

Engrenages

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.

Un microscope

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.

Bagages

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 !

Logo de WebAssembly

Apprenez-en plus sur la machine virtuelle rapide, sûre et ouverte appelée WebAssembly, et lisez sa référence.

En savoir plus
wasm ferris

Apprenez à construire, déboguer, profiler et déployer des applications WebAssembly avec Rust.

Lire le Livre
logo MDN

En savoir plus sur WebAssembly en consultant Mozilla Developer Network.

Jeter un œil

Fonctionne 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

Logo de cloudflare
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

dropbox
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