WebAssembly (WASM) is een draagbaar binair codeformaat op laag niveau dat in moderne browsers wordt uitgevoerd, net als JavaScript. WebAssembly is zelfs interoperabel met JavaScript. U kunt de meeste broncode van programma's naar WebAssembly transpileren en deze met of zonder JavaScript in de browser uitvoeren.

Rust is snel, waardoor de taal een haalbare optie is voor het bouwen van WebAssembly-programma's. Er zijn veel Rust-bibliotheken en frameworks om te helpen, met ondersteuning voor de tools die u gebruikt om web-apps te bouwen.

1. De Sycamore-bibliotheek

plataan is een snel, ergonomisch en intuïtief SolidJS-achtig reactief framework. U kunt het gebruiken om webtoepassingen in Rust te bouwen die gebruikmaken van de kracht van WebAssembly. Sycamore biedt de meeste functionaliteit die je nodig hebt om een ​​frontend voor een web-app in Rust te maken, dus je hoeft geen JavaScript te schrijven.

Sycamore biedt ook een router en JavaScript-interoperabiliteit via Wasm-Bindgen met behulp van JS-sys of Web-Sys. Het project is van plan binnenkort test- en CSS-functionaliteit vrij te geven.

instagram viewer

Om Sycamore te gebruiken, heb je een recente versie van Rust nodig: de wasm32-onbekend-onbekend doelwit. Je hebt ook Trunk nodig om je applicatie te bouwen en te bundelen. Omdat Sycamore nieuw is, zal het riskant zijn om de hoofdvertakkingsbibliotheek in productie te gebruiken, behalve als je je toevlucht neemt tot een eerdere uitgave.

2. Het Taxus Kader

taxus is een Rust-framework voor het bouwen van multithreaded frontend-webapps met behulp van WebAssembly. Hiermee kunt u Rust-code schrijven en uw Rust-code naar WASM transpileren, die op elk apparaat met WASM-ondersteuning kan worden uitgevoerd. Yew is interoperabel met JavaScript (u kunt uw npm pakketten), en het framework biedt een macro voor interactie met HTML-elementen met Rust, zoals JSX in React.

U kunt aan de slag met Yew met behulp van de Trunk-toepassingsbundel of WASMPack. Bekijk de documentatie voor informatie over hoe u aan de slag kunt gaan, hoe u met HTML kunt omgaan en DOM API's en transpileer uw Rust-code naar WebAssembly.

Het Yew-project is erg populair, met meer dan twintigduizend sterren op Github en vijfduizend gebruikers. Taxus is stabiel, maar het project is nog niet klaar voor productie en de codebasis verandert, dus u kunt fouten en onderbrekingen ervaren.

3. De Percy-bibliotheek

Percy is een verzameling Rust-bibliotheken voor het bouwen van frontend-webapps, mogelijk gemaakt door WebAssembly. Percy ondersteunt instant server-side rendering. Het project blinkt uit in het bouwen van zoekmachinevriendelijke single-page applicaties (SPA's).

Percy biedt een html! macro voor het genereren van virtuele DOM's. U kunt deze renderen in DOM-elementen in de frontend of ze gebruiken voor bewerkingen in de backend van uw applicatie.

Percy is nog erg nieuw, en hoewel de bibliotheek nog niet klaar is voor productie, is het project erg populair, met meer dan tweeduizend sterren op Github.

4. Het zaadkader

Zaad is een full-stack WebAssembly-aangedreven framework met batterijen voor het bouwen van snelle web-apps in Rust. Het Seed-framework biedt een sjabloonsysteem dat een macrosyntaxis gebruikt in plaats van de JSX-achtige syntaxis van Yew. Het heeft ook een ingebouwd statusbeheersysteem om de productiviteit te verbeteren.

Seed is nieuw en kant-en-klare componenten zoals datumkiezers zijn zeldzaam. Hoewel Seed momenteel geen server-side rendering ondersteunt, streeft het project ernaar dit binnenkort op te nemen. Anders is Seed compleet met functies en kunt u er productieklare webapplicaties mee bouwen. Seed gebruikt ook de Elm-architectuur met minimale configuratie. U kunt uw applicaties bouwen en bundelen met Trunk, Web Bundler of Seeder.

Je kunt Seed ook gebruiken voor de backend van je webapplicatie. Seed biedt functionaliteit voor het bouwen van REST- of GraphQL-API's met ondersteuning voor routering en authenticatie en AuthO-integratie.

MaanZoon is een gebruiksvriendelijk, full-stack, door WebAssembly ondersteund framework voor frontend- en backend-applicaties. U kunt Rust schrijven zonder HTML, CSS en JavaScript op de frontend of REST, GraphQL of SQL op de backend te hoeven schrijven. MoonZoon is snel, eenvoudig, schaalbaar en SEO-vriendelijk. Het biedt een CLI-toepassing om web-apps te bouwen die eenvoudig te implementeren zijn.

De filosofie van het MoonZoon-project is om een ​​heel eenvoudig hulpmiddel te maken zonder speciale terminologie, kunstmatige barrières of dogma's. Als u het gebruikt, kunt u zich concentreren op het bouwen van webapplicaties zoals u wilt. Je moet WASM-Pack geïnstalleerd hebben om de front-end te bouwen. De backend van een MoonZoon-applicatie draait op Actix-web en Warp, beide populaire Rust-backend-frameworks. MoonZoon biedt ook authenticatiefunctionaliteit.

De MoonZoon-documentatie wordt momenteel niet gehost. Om de tool te gebruiken, kun je de afwaarderingsbestanden bekijken in de documenten map via de project GitHub-opslagplaats.

Mogelijk hebt u interactie gehad met WebAssembly

WebAssembly werd voor het eerst uitgebracht in 2017 en het World Wide Web Consortium (W3C) maakte van WebAssembly in 2019 een webstandaard. Sinds 2019 gebruiken bedrijven als Cloudflare, Google en Dropbox de technologie in de productie.

Google Earth gebruikt WebAssembly, Cloudflare gebruikt het voor Cloudflare Workers en Dropbox gebruikt WebAssembly voor een codec op zijn website.