WebAssembly (WASM) este un format de cod binar portabil, de nivel scăzut, care rulează pe browsere moderne, la fel ca JavaScript. De fapt, WebAssembly este, de asemenea, interoperabil cu JavaScript. Puteți transpila majoritatea codului sursă al programului în WebAssembly și îl puteți rula în browser cu sau fără JavaScript.
Rust este rapid, făcând limbajul o opțiune viabilă pentru construirea de programe WebAssembly. Există multe biblioteci și cadre Rust care vă pot ajuta, cu suport pentru instrumentele pe care le utilizați pentru a crea aplicații web.
1. Biblioteca Sycamore
paltin de munte este un cadru reactiv rapid, ergonomic și intuitiv, asemănător SolidJS. Îl puteți folosi pentru a construi aplicații web în Rust care valorifică puterea WebAssembly. Sycamore oferă cea mai mare parte a funcționalității de care aveți nevoie pentru a crea o aplicație web frontend în Rust, așa că nu va trebui să scrieți JavaScript.
Sycamore oferă, de asemenea, un router și interoperabilitate JavaScript peste Wasm-Bindgen folosind JS-sys sau Web-Sys. Proiectul intenționează să lanseze testarea și funcționalitatea CSS în curând.
Pentru a utiliza Sycamore, veți avea nevoie de o versiune recentă a Rust—the wasm32-necunoscut-necunoscut ţintă. De asemenea, veți avea nevoie de Trunk pentru a crea și a vă grupa aplicația. Deoarece Sycamore este nou, va fi riscant să utilizați biblioteca principală de ramură în producție, cu excepția cazului în care recurgeți la o versiune anterioară.
2. Cadrul de tisa
tisa este un cadru Rust pentru construirea de aplicații web frontend cu mai multe fire folosind WebAssembly. Vă permite să scrieți codul Rust și să transpilați codul Rust în WASM, care poate rula pe orice dispozitiv cu suport WASM. Yew este interoperabil cu JavaScript (puteți folosi dvs pachete npm), iar cadrul oferă o macrocomandă pentru interacțiunea cu elemente HTML cu Rust, cum ar fi JSX în React.
Puteți începe să utilizați Yew utilizând pachetul de aplicații Trunk sau WASMPack. Consultați documentația despre cum să începeți, să interacționați cu HTML și API-urile DOM și transpilează-ți codul Rust în WebAssembly.
Proiectul Yew este foarte popular, cu peste douăzeci de mii de stele pe Github și cinci mii de utilizatori. Yew este stabil, dar proiectul nu este pregătit pentru producție, iar baza de cod se schimbă, așa că este posibil să întâmpinați erori și întreruperi.
3. Biblioteca Percy
Percy este o colecție de biblioteci Rust pentru construirea de aplicații web frontend, alimentate de WebAssembly. Percy acceptă redarea instantanee pe partea serverului. Proiectul excelează în construirea de aplicații pe o singură pagină (SPA) care să fie prietenoase cu motoarele de căutare.
Percy oferă o html! macro pentru generarea de DOM-uri virtuale. Puteți reda acestea în elemente DOM în front-end sau le puteți utiliza pentru operațiuni în backend-ul aplicației dvs.
Percy este încă foarte nou și, deși biblioteca nu este gata de producție, proiectul este foarte popular, cu peste două mii de stele pe Github.
4. Cadrul semințelor
Sămânță este un cadru complet alimentat de WebAssembly, cu baterii incluse, pentru construirea de aplicații web rapide în Rust. Cadrul Seed oferă un sistem de șabloane care utilizează o sintaxă macro în loc de sintaxa asemănătoare JSX a lui Yew. De asemenea, are încorporat un sistem de management de stat pentru a spori productivitatea.
Semințele sunt noi, iar componentele prefabricate, cum ar fi culesurile de curmale, sunt rare. Deși Seed nu acceptă în prezent randarea pe server, proiectul își propune să o includă în curând. În caz contrar, Seed are funcții complete și puteți construi aplicații web pregătite pentru producție cu ajutorul acestuia. Seed folosește și arhitectura Elm cu o configurație minimă. Puteți crea și grupa aplicațiile dvs. folosind Trunk, Web Bundler sau Seeder.
De asemenea, puteți utiliza Seed pentru backend-ul aplicației dvs. web. Seed oferă funcționalitate pentru construirea de API-uri REST sau GraphQL cu suport de rutare și autentificare și integrare AuthO.
MoonZoon este un cadru ușor de utilizat, full-stack, suportat de WebAssembly pentru aplicații frontend și backend. Puteți scrie Rust fără a fi nevoie să scrieți HTML, CSS și JavaScript pe front-end sau REST, GraphQL sau SQL pe backend. MoonZoon este rapid, simplu, scalabil și prietenos cu SEO. Oferă o aplicație CLI pentru a construi aplicații web care sunt ușor de implementat.
Filosofia proiectului MoonZoon este de a crea un instrument foarte simplu, fără terminologie specială, bariere artificiale sau dogme. Folosind-o, vă puteți concentra pe construirea de aplicații web după cum doriți. Va trebui să aveți instalat WASM-Pack pentru a construi front-end-ul. Backend-ul unei aplicații MoonZoon rulează pe Actix-web și Warp, ambele cadre de backend populare Rust. MoonZoon oferă, de asemenea, funcționalitate de autentificare.
Documentația MoonZoon nu este găzduită momentan. Pentru a utiliza instrumentul, puteți verifica fișierele de reducere din fișierul docs folder prin intermediul proiectului Depozitul GitHub.
Este posibil să fi interacționat cu WebAssembly
WebAssembly a fost lansat pentru prima dată în 2017, iar World Wide Web Consortium (W3C) a făcut din WebAssembly un standard web în 2019. Din 2019, companii precum Cloudflare, Google și Dropbox au folosit tehnologia în producție.
Google Earth folosește WebAssembly, Cloudflare îl folosește pentru lucrătorii Cloudflare, iar Dropbox folosește WebAssembly pentru un codec pe site-ul său web.