WebAssembly (WASM) er et bærbart binært kodeformat på lavt niveau, der kører på moderne browsere, ligesom JavaScript gør. Faktisk er WebAssembly også interoperabel med JavaScript. Du kan transpilere de fleste programmers kildekode ned til WebAssembly og køre den på browseren med eller uden JavaScript.
Rust er hurtig, hvilket gør sproget til en levedygtig mulighed for at bygge WebAssembly-programmer. Der er mange Rust-biblioteker og rammer til at hjælpe, med understøttelse af de værktøjer, du bruger til at bygge webapps.
1. Sycamore biblioteket
Sycamore er en hurtig, ergonomisk og intuitiv SolidJS-lignende reaktiv ramme. Du kan bruge det til at bygge webapplikationer i Rust, der udnytter kraften i WebAssembly. Sycamore giver det meste af den funktionalitet, du skal bruge for at oprette en webapp-frontend i Rust, så du behøver ikke at skrive JavaScript.
Sycamore giver også en router og JavaScript-interoperabilitet over Wasm-Bindgen ved hjælp af JS-sys eller Web-Sys. Projektet har til hensigt at frigive test- og CSS-funktionalitet snart.
For at bruge Sycamore skal du bruge en nyere version af Rust—den wasm32-ukendt-ukendt mål. Du skal også bruge Trunk til at bygge og samle din applikation. Da Sycamore er nyt, vil det være risikabelt at bruge hovedafdelingsbiblioteket i produktionen, undtagen hvis du tyer til en tidligere udgivelse.
2. Taks-rammen
Taks er en Rust-ramme til at bygge multithreaded frontend-webapps ved hjælp af WebAssembly. Det giver dig mulighed for at skrive rustkode og transpilere din rustkode til WASM, som kan køre på enhver enhed med WASM-understøttelse. Yew er interoperabel med JavaScript (du kan bruge din npm pakker), og rammen giver en makro til at interagere med HTML-elementer med Rust, som JSX i React.
Du kan komme i gang med Yew ved at bruge Trunk-applikationsbundteren eller WASMPack. Se dokumentationen for, hvordan du kommer i gang, interagerer med HTML og DOM API'er og transpilér din Rust-kode til WebAssembly.
Yew-projektet er meget populært med over tyve tusinde stjerner på Github og fem tusinde brugere. Taks er stabil, men projektet er ikke produktionsklar, og kodebasen er under forandring, så du kan opleve fejl og brud.
3. Percy biblioteket
Percy er en samling af Rust-biblioteker til at bygge frontend-webapps drevet af WebAssembly. Percy understøtter øjeblikkelig gengivelse på serversiden. Projektet udmærker sig ved at bygge søgemaskinevenlige enkeltsidesapplikationer (SPA'er).
Percy giver en html! makro til generering af virtuelle DOM'er. Du kan gengive disse til DOM-elementer i frontend eller bruge dem til operationer i backend af din applikation.
Percy er stadig meget ny, og selvom biblioteket ikke er produktionsklar, er projektet meget populært, med over to tusinde stjerner på Github.
4. Frørammen
Frø er et batteri-inkluderet, full-stack WebAssembly-drevet framework til at bygge hurtige webapps i Rust. Seed-rammen giver et skabelonsystem, der bruger en makrosyntaks i stedet for Yews JSX-lignende syntaks. Det har også et indbygget tilstandsstyringssystem for at øge produktiviteten.
Seed er nyt, og færdigbyggede komponenter som datoplukkere er sjældne. Selvom Seed i øjeblikket ikke understøtter server-side rendering, sigter projektet mod at inkludere det snart. Ellers er Seed feature-komplet, og du kan bygge produktionsklare webapplikationer med det. Seed bruger også Elm-arkitekturen med minimal konfiguration. Du kan bygge og samle dine applikationer ved hjælp af Trunk, Web Bundler eller Seeder.
Du kan også bruge Seed som backend af din webapplikation. Seed giver funktionalitet til opbygning af REST eller GraphQL API'er med routing og godkendelsesunderstøttelse og AuthO integration.
MoonZoon er en nem at bruge, fuld stack, WebAssembly-understøttet ramme til frontend- og backend-applikationer. Du kan skrive Rust uden at skulle skrive HTML, CSS og JavaScript på frontend eller REST, GraphQL eller SQL på backend. MoonZoon er hurtig, enkel, skalerbar og SEO-venlig. Det giver en CLI-applikation til at bygge webapps, der er nemme at implementere.
MoonZoon-projektets filosofi er at skabe et meget simpelt værktøj uden speciel terminologi, kunstige barrierer eller dogmer. Ved at bruge det kan du fokusere på at bygge webapplikationer, som du vil. Du skal have WASM-Pack installeret for at bygge frontenden. Backend af en MoonZoon-applikation kører på Actix-web og Warp, begge populære Rust-backend-frameworks. MoonZoon giver også godkendelsesfunktionalitet.
MoonZoon-dokumentationen er ikke hostet i øjeblikket. For at bruge værktøjet kan du tjekke markdown-filerne i dokumenter mappe via projektets GitHub-depot.
Du kan have interageret med WebAssembly
WebAssembly blev først udgivet i 2017, og World Wide Web Consortium (W3C) gjorde WebAssembly til en webstandard i 2019. Siden 2019 har virksomheder som Cloudflare, Google og Dropbox brugt teknologien i produktionen.
Google Earth bruger WebAssembly, Cloudflare bruger det til Cloudflare Workers, og Dropbox bruger WebAssembly til et codec på sin hjemmeside.