WebAssembly (WASM) est un format de code binaire portable de bas niveau qui s'exécute sur les navigateurs modernes, tout comme JavaScript. En fait, WebAssembly est également interopérable avec JavaScript. Vous pouvez transpiler la plupart du code source du programme vers WebAssembly et l'exécuter sur le navigateur avec ou sans JavaScript.

Rust est rapide, ce qui fait du langage une option viable pour créer des programmes WebAssembly. Il existe de nombreuses bibliothèques et frameworks Rust pour vous aider, avec la prise en charge des outils que vous utilisez pour créer des applications Web.

1. La Bibliothèque Sycomore

Sycomore est un framework réactif rapide, ergonomique et intuitif de type SolidJS. Vous pouvez l'utiliser pour créer des applications Web dans Rust qui exploitent la puissance de WebAssembly. Sycamore fournit la plupart des fonctionnalités dont vous aurez besoin pour créer une interface d'application Web dans Rust, vous n'aurez donc pas besoin d'écrire du JavaScript.

Sycamore fournit également un routeur et une interopérabilité JavaScript sur Wasm-Bindgen en utilisant JS-sys ou Web-Sys. Le projet a l'intention de publier prochainement les tests et les fonctionnalités CSS.

Pour utiliser Sycamore, vous aurez besoin d'une version récente de Rust—la wasm32-inconnu-inconnu cible. Vous aurez également besoin de Trunk pour créer et regrouper votre application. Puisque Sycamore est nouveau, il sera risqué d'utiliser la bibliothèque de branche principale en production, sauf si vous recourez à une version antérieure.

2. Le cadre d'if

If est un framework Rust permettant de créer des applications Web frontend multithread à l'aide de WebAssembly. Il vous permet d'écrire du code Rust et de transpiler votre code Rust vers WASM, qui peut s'exécuter sur n'importe quel appareil prenant en charge WASM. Yew est interopérable avec JavaScript (vous pouvez utiliser votre paquets npm), et le framework fournit une macro pour interagir avec les éléments HTML avec Rust, comme JSX dans React.

Vous pouvez démarrer avec Yew en utilisant le bundle d'applications Trunk ou WASMPack. Consultez la documentation pour savoir comment démarrer, interagir avec HTML et API DOM et transpilez votre code Rust vers WebAssembly.

Le projet Yew est très populaire, avec plus de vingt mille étoiles sur Github et cinq mille utilisateurs. Yew est stable, mais le projet n'est pas prêt pour la production et la base de code change, vous pouvez donc rencontrer des erreurs et des interruptions.

3. La bibliothèque Percy

Percy est une collection de bibliothèques Rust pour créer des applications Web frontales alimentées par WebAssembly. Percy prend en charge le rendu instantané côté serveur. Le projet excelle dans la création d'applications monopage (SPA) adaptées aux moteurs de recherche.

Percy fournit une html ! macro pour générer des DOM virtuels. Vous pouvez les rendre dans des éléments DOM dans le frontend ou les utiliser pour des opérations dans le backend de votre application.

Percy est encore très nouveau, et bien que la bibliothèque ne soit pas prête pour la production, le projet est très populaire, avec plus de deux mille étoiles sur Github.

4. Le cadre de départ

Planter est un framework complet alimenté par WebAssembly et alimenté par piles pour créer des applications Web rapides dans Rust. Le framework Seed fournit un système de modèles qui utilise une syntaxe de macro au lieu de la syntaxe de type JSX de Yew. Il dispose également d'un système de gestion d'état intégré pour améliorer la productivité.

Seed est nouveau et les composants pré-construits comme les sélecteurs de dates sont rares. Bien que Seed ne supporte pas actuellement le rendu côté serveur, le projet vise à l'inclure bientôt. Sinon, Seed est complet et vous pouvez créer des applications Web prêtes pour la production avec. Seed utilise également l'architecture Elm avec une configuration minimale. Vous pouvez créer et regrouper vos applications à l'aide de Trunk, Web Bundler ou Seeder.

Vous pouvez également utiliser Seed pour le backend de votre application Web. Seed fournit des fonctionnalités pour créer des API REST ou GraphQL avec prise en charge du routage et de l'authentification et intégration AuthO.

MoonZoon est un framework facile à utiliser, à pile complète, pris en charge par WebAssembly pour les applications frontend et backend. Vous pouvez écrire Rust sans avoir à écrire HTML, CSS et JavaScript sur le frontend ou REST, GraphQL ou SQL sur le backend. MoonZoon est rapide, simple, évolutif et optimisé pour le référencement. Il fournit une application CLI pour créer des applications Web faciles à déployer.

La philosophie du projet MoonZoon est de créer un outil très simple sans terminologie particulière, barrières artificielles ou dogme. En l'utilisant, vous pouvez vous concentrer sur la création d'applications Web à votre guise. Vous aurez besoin d'avoir WASM-Pack installé pour construire le frontal. Le backend d'une application MoonZoon s'exécute sur Actix-web et Warp, deux frameworks de backend Rust populaires. MoonZoon fournit également une fonctionnalité d'authentification.

La documentation de MoonZoon n'est pas hébergée pour le moment. Pour utiliser l'outil, vous pouvez consulter les fichiers de démarquage dans le documents dossier via le projet Référentiel GitHub.

Vous avez peut-être interagi avec WebAssembly

WebAssembly a été publié pour la première fois en 2017 et le World Wide Web Consortium (W3C) a fait de WebAssembly une norme Web en 2019. Depuis 2019, des entreprises comme Cloudflare, Google et Dropbox ont utilisé la technologie en production.

Google Earth utilise WebAssembly, Cloudflare l'utilise pour Cloudflare Workers et Dropbox utilise WebAssembly pour un codec sur son site Web.