WebAssembly (WASM) je prenosný formát binárneho kódu na nízkej úrovni, ktorý beží v moderných prehliadačoch, rovnako ako JavaScript. WebAssembly je v skutočnosti tiež interoperabilná s JavaScriptom. Väčšinu zdrojového kódu programu môžete preniesť do WebAssembly a spustiť ho v prehliadači s alebo bez JavaScriptu.

Rust je rýchly, vďaka čomu je jazyk životaschopnou voľbou pre vytváranie programov WebAssembly. Existuje mnoho knižníc a rámcov Rust, ktoré vám môžu pomôcť, s podporou nástrojov, ktoré používate na vytváranie webových aplikácií.

1. Knižnica Sycamore

Sycamore je rýchly, ergonomický a intuitívny reaktívny rámec podobný SolidJS. Môžete ho použiť na vytváranie webových aplikácií v Ruste, ktoré využívajú silu WebAssembly. Sycamore poskytuje väčšinu funkcií, ktoré budete potrebovať na vytvorenie frontendu webovej aplikácie v Ruste, takže nebudete musieť písať JavaScript.

Sycamore tiež poskytuje interoperabilitu smerovača a JavaScriptu cez Wasm-Bindgen pomocou JS-sys alebo Web-Sys. Projekt má v úmysle čoskoro uvoľniť testovanie a funkčnosť CSS.

instagram viewer

Ak chcete používať Sycamore, budete potrebovať najnovšiu verziu Rust – the wasm32-neznámy-neznámy cieľ. Na zostavenie a spojenie aplikácie budete potrebovať aj Trunk. Keďže Sycamore je nový, bude riskantné používať knižnicu hlavnej vetvy v produkcii, s výnimkou prípadu, keď sa uchýlite k staršiemu vydaniu.

2. Rámec tisu

tis je Rust framework na vytváranie viacvláknových frontend webových aplikácií pomocou WebAssembly. Umožňuje vám napísať kód Rust a preniesť váš kód Rust do WASM, ktorý môže bežať na akomkoľvek zariadení s podporou WASM. Yew je interoperabilný s JavaScriptom (môžete použiť svoj npm balíčky) a rámec poskytuje makro na interakciu s prvkami HTML s Rustom, ako je JSX v React.

S Yew môžete začať pomocou balíka aplikácií Trunk alebo WASMPack. Pozrite si dokumentáciu o tom, ako začať, pracovať s HTML a DOM API a preneste svoj Rust kód do WebAssembly.

Projekt Yew je veľmi populárny, na Githube má vyše dvadsaťtisíc hviezdičiek a päťtisíc používateľov. Yew je stabilný, ale projekt nie je pripravený na výrobu a základňa kódu sa mení, takže sa môžu vyskytnúť chyby a poruchy.

3. Percyho knižnica

Percy je zbierka knižníc Rust na vytváranie frontend webových aplikácií využívajúcich WebAssembly. Percy podporuje okamžité vykresľovanie na strane servera. Projekt vyniká pri vytváraní jednostránkových aplikácií (SPA), ktoré sú vhodné pre vyhľadávače.

Percy poskytuje html! makro na generovanie virtuálnych DOM. Môžete ich vykresliť do prvkov DOM vo frontende alebo ich použiť na operácie v backende vašej aplikácie.

Percy je stále veľmi nový a hoci knižnica nie je pripravená na produkciu, projekt je veľmi populárny, s viac ako dvoma tisíckami hviezdičiek na Githube.

4. Rámec semien

Semienko je kompletný rámec WebAssembly, ktorý obsahuje batérie a slúži na vytváranie rýchlych webových aplikácií v Ruste. Rámec Seed poskytuje systém šablón, ktorý používa syntax makier namiesto syntaxe podobnej Yew JSX. Má tiež zabudovaný systém riadenia stavu na zvýšenie produktivity.

Semeno je nové a vopred pripravené komponenty, ako sú zberače dátumov, sú zriedkavé. Hoci Seed v súčasnosti nepodporuje vykresľovanie na strane servera, cieľom projektu je čoskoro ho zahrnúť. V opačnom prípade má Seed kompletné funkcie a môžete s ním vytvárať webové aplikácie pripravené na výrobu. Seed tiež používa architektúru Elm s minimálnou konfiguráciou. Aplikácie môžete zostavovať a spájať pomocou Trunk, Web Bundler alebo Seeder.

Seed môžete použiť aj ako backend svojej webovej aplikácie. Seed poskytuje funkcie na vytváranie REST alebo GraphQL API s podporou smerovania a autentifikácie a integráciou AuthO.

MoonZoon je jednoducho použiteľný, kompletný, WebAssembly podporovaný rámec pre frontend a backend aplikácie. Rust môžete písať bez toho, aby ste museli písať HTML, CSS a JavaScript na frontende alebo REST, GraphQL alebo SQL na backende. MoonZoon je rýchly, jednoduchý, škálovateľný a priateľský k SEO. Poskytuje aplikáciu CLI na vytváranie webových aplikácií, ktoré sa jednoducho nasadzujú.

Filozofiou projektu MoonZoon je vytvoriť veľmi jednoduchý nástroj bez špeciálnej terminológie, umelých bariér alebo dogiem. Pomocou neho sa môžete sústrediť na vytváranie webových aplikácií, ako chcete. Na zostavenie frontendu budete musieť mať nainštalovaný WASM-Pack. Backend aplikácie MoonZoon beží na Actix-web a Warp, oboch populárnych backendových rámcoch Rust. MoonZoon tiež poskytuje funkciu autentifikácie.

Dokumentácia MoonZoon momentálne nie je hosťovaná. Ak chcete použiť tento nástroj, môžete si pozrieť súbory markdown v dokumenty priečinok cez projekt úložisko GitHub.

Možno ste interagovali s WebAssembly

WebAssembly bol prvýkrát uvedený na trh v roku 2017 a konzorcium World Wide Web Consortium (W3C) urobilo z WebAssembly webový štandard v roku 2019. Od roku 2019 používajú túto technológiu vo výrobe spoločnosti ako Cloudflare, Google a Dropbox.

Google Earth používa WebAssembly, Cloudflare ho používa pre Cloudflare Workers a Dropbox používa WebAssembly ako kodek na svojej webovej stránke.