WebAssembly (WASM) je přenosný formát binárního kódu na nízké úrovni, který běží na moderních prohlížečích, stejně jako JavaScript. WebAssembly je ve skutečnosti také interoperabilní s JavaScriptem. Většinu zdrojového kódu programu můžete přenést do WebAssembly a spustit jej v prohlížeči s JavaScriptem nebo bez něj.

Rust je rychlý, díky čemuž je jazyk životaschopnou volbou pro vytváření programů WebAssembly. Existuje mnoho knihoven a frameworků Rust, které vám pomohou, s podporou nástrojů, které používáte k vytváření webových aplikací.

1. Knihovna Sycamore

Klen je rychlý, ergonomický a intuitivní reaktivní rámec podobný SolidJS. Můžete jej použít k vytváření webových aplikací v Rustu, které využívají sílu WebAssembly. Sycamore poskytuje většinu funkcí, které budete potřebovat k vytvoření frontendu webové aplikace v Rustu, takže nebudete muset psát JavaScript.

Sycamore také poskytuje interoperabilitu routeru a JavaScriptu přes Wasm-Bindgen pomocí JS-sys nebo Web-Sys. Projekt má v úmyslu brzy uvolnit testovací a CSS funkčnost.

instagram viewer

Chcete-li používat Sycamore, budete potřebovat nejnovější verzi Rust – the wasm32-unknown-unknown cílová. K sestavení a sbalení aplikace budete také potřebovat Trunk. Vzhledem k tomu, že Sycamore je nový, bude riskantní používat hlavní pobočkovou knihovnu v produkci, s výjimkou případů, kdy se uchýlíte k dřívější verzi.

2. Rámec tisu

Tis je framework Rust pro vytváření vícevláknových frontend webových aplikací pomocí WebAssembly. Umožňuje vám napsat kód Rust a přenést váš kód Rust do WASM, který lze spustit na jakémkoli zařízení s podporou WASM. Yew je interoperabilní s JavaScriptem (můžete použít svůj npm balíčky) a framework poskytuje makro pro interakci s HTML prvky s Rustem, jako je JSX v Reactu.

S Yew můžete začít pomocí balíčku aplikací Trunk nebo WASMPack. Podívejte se do dokumentace, jak začít, pracovat s HTML a DOM API a transpilujte svůj Rust kód do WebAssembly.

Projekt Yew je velmi populární, na Githubu má přes dvacet tisíc hvězdiček a pět tisíc uživatelů. Yew je stabilní, ale projekt není připraven na produkci a základna kódu se mění, takže můžete zaznamenat chyby a přerušení.

3. Percyho knihovna

Percy je kolekce knihoven Rust pro vytváření frontendových webových aplikací založených na WebAssembly. Percy podporuje okamžité vykreslování na straně serveru. Projekt vyniká při vytváření jednostránkových aplikací (SPA) vhodných pro vyhledávače.

Percy poskytuje html makro pro generování virtuálních DOMů. Můžete je vykreslit do prvků DOM ve frontendu nebo je použít pro operace v backendu vaší aplikace.

Percy je stále velmi nový, a přestože knihovna není připravena na produkci, projekt je velmi populární, s více než dvěma tisíci hvězdami na Githubu.

4. Seed Framework

Semínko je integrovaný rámec WebAssembly s bateriemi pro vytváření rychlých webových aplikací v Rustu. Rámec Seed poskytuje systém šablon, který používá syntaxi maker namísto syntaxe podobné Yew JSX. Má také vestavěný systém řízení stavu pro zvýšení produktivity.

Seed je nový a předpřipravené komponenty jako sběrače dat jsou vzácné. Přestože Seed v současné době nepodporuje vykreslování na straně serveru, projekt ho chce brzy zahrnout. Jinak je Seed kompletní a můžete s ním vytvářet webové aplikace připravené k produkci. Seed také používá architekturu Elm s minimální konfigurací. Své aplikace můžete sestavovat a sdružovat pomocí Trunk, Web Bundler nebo Seeder.

Seed můžete také použít pro backend vaší webové aplikace. Seed poskytuje funkce pro vytváření REST nebo GraphQL API s podporou směrování a ověřování a integrací AuthO.

MoonZoon je snadno použitelný, full-stack, WebAssembly podporovaný framework pro frontendové a backendové aplikace. Rust můžete psát, aniž byste museli psát HTML, CSS a JavaScript na frontendu nebo REST, GraphQL nebo SQL na backendu. MoonZoon je rychlý, jednoduchý, škálovatelný a šetrný k SEO. Poskytuje aplikaci CLI pro vytváření webových aplikací, které lze snadno nasadit.

Filozofií projektu MoonZoon je vytvořit velmi jednoduchý nástroj bez speciální terminologie, umělých bariér nebo dogmat. S jeho pomocí se můžete soustředit na vytváření webových aplikací, jak chcete. Pro vytvoření frontendu budete muset mít nainstalovaný WASM-Pack. Backend aplikace MoonZoon běží na Actix-webu a Warpu, obou populárních backendových frameworkech Rust. MoonZoon také poskytuje funkci ověřování.

Dokumentace MoonZoon není v tuto chvíli hostována. Chcete-li nástroj použít, můžete se podívat na soubory markdown v dokumenty složku prostřednictvím projektu úložiště GitHub.

Možná jste interagovali s WebAssembly

WebAssembly byl poprvé uveden na trh v roce 2017 a World Wide Web Consortium (W3C) učinilo WebAssembly webovým standardem v roce 2019. Od roku 2019 používají tuto technologii ve výrobě společnosti jako Cloudflare, Google a Dropbox.

Google Earth používá WebAssembly, Cloudflare ho používá pro Cloudflare Workers a Dropbox používá WebAssembly pro kodek na svém webu.