WebAssembly (WASM) on kannettava, matalan tason binäärikoodimuoto, joka toimii nykyaikaisissa selaimissa, aivan kuten JavaScriptkin tekee. Itse asiassa WebAssembly on myös yhteentoimiva JavaScriptin kanssa. Voit siirtää useimpien ohjelmien lähdekoodin WebAssemblyksi ja suorittaa sen selaimessa JavaScriptin kanssa tai ilman.
Ruoste on nopea, mikä tekee kielestä käyttökelpoisen vaihtoehdon WebAssembly-ohjelmien rakentamiseen. Apuna on monia Rust-kirjastoja ja kehyksiä, jotka tukevat työkaluja, joita käytät verkkosovellusten luomiseen.
1. Sycamoren kirjasto
Sycamore on nopea, ergonominen ja intuitiivinen SolidJS: n kaltainen reaktiivinen kehys. Voit käyttää sitä verkkosovellusten rakentamiseen Rustissa, jotka hyödyntävät WebAssemblyn tehoa. Sycamore tarjoaa suurimman osan toiminnoista, joita tarvitset verkkosovelluksen käyttöliittymän luomiseen Rustissa, joten sinun ei tarvitse kirjoittaa JavaScriptiä.
Sycamore tarjoaa myös reitittimen ja JavaScript-yhteensopivuuden Wasm-Bindgenin kautta JS-sys- tai Web-Sysin avulla. Projekti aikoo julkaista testaus- ja CSS-toiminnallisuuden lähiaikoina.
Sycamoren käyttämiseen tarvitaan uusin Rust-versio wasm32-tuntematon-tuntematon kohde. Tarvitset myös rungon rakentaaksesi ja niputtaaksesi sovelluksesi. Koska Sycamore on uusi, on riskialtista käyttää päähaarakirjastoa tuotannossa, paitsi jos turvaudut aikaisempaan julkaisuun.
2. Yew Framework
Marjakuusi on Rust-kehys monisäikeisten käyttöliittymän verkkosovellusten rakentamiseen WebAssemblyn avulla. Sen avulla voit kirjoittaa Rust-koodin ja siirtää Rust-koodisi WASM: iin, joka voi toimia missä tahansa WASM-tuella varustetussa laitteessa. Yew on yhteentoimiva JavaScriptin kanssa (voit käyttää npm-paketteja), ja kehys tarjoaa makron vuorovaikutukseen HTML-elementtien kanssa Rustin kanssa, kuten JSX Reactissa.
Voit aloittaa Yew'n käytön käyttämällä Trunk-sovelluspakettia tai WASMPackia. Katso dokumentaatiosta, kuinka pääset alkuun, käytät vuorovaikutusta HTML: n kanssa ja DOM-sovellusliittymät ja siirrä Rust-koodisi WebAssemblyyn.
Yew-projekti on erittäin suosittu, sillä Githubissa on yli kaksikymmentä tuhatta tähteä ja viisi tuhatta käyttäjää. Yew on vakaa, mutta projekti ei ole tuotantovalmis ja koodikanta muuttuu, joten saatat kohdata virheitä ja katkoksia.
3. Percyn kirjasto
Percy on kokoelma Rust-kirjastoja WebAssemblyn tuottamien käyttöliittymäverkkosovellusten rakentamiseen. Percy tukee välitöntä palvelinpuolen renderöintiä. Hanke loistaa hakukoneystävällisten yksisivuisten sovellusten (SPA: n) rakentamisessa.
Percy tarjoaa html! makro virtuaalisten DOM: ien luomiseen. Voit renderöidä nämä DOM-elementeiksi käyttöliittymässä tai käyttää niitä sovelluksesi taustajärjestelmän toimintoihin.
Percy on vielä hyvin uusi, ja vaikka kirjasto ei ole tuotantovalmis, projekti on erittäin suosittu, sillä Githubissa on yli kaksituhatta tähteä.
4. Seed Framework
Siemen on paristoilla varustettu täyspino WebAssembly-käyttöinen kehys nopeiden verkkosovellusten rakentamiseen Rustissa. Seed-kehys tarjoaa mallijärjestelmän, joka käyttää makrosyntaksia Yew'n JSX-tyyppisen syntaksin sijaan. Siinä on myös sisäänrakennettu tilanhallintajärjestelmä tuottavuuden parantamiseksi.
Seed on uusi, ja valmiiksi rakennetut komponentit, kuten päivämääränpoimijat, ovat harvinaisia. Vaikka Seed ei tällä hetkellä tue palvelinpuolen renderöintiä, projekti pyrkii sisällyttämään sen pian. Muuten Seed on ominaisuuksiltaan täydellinen, ja sen avulla voit rakentaa tuotantovalmiita verkkosovelluksia. Seed käyttää myös Elm-arkkitehtuuria minimaalisella kokoonpanolla. Voit rakentaa ja niputtaa sovelluksiasi Trunkilla, Web Bundlerilla tai Seederillä.
Voit myös käyttää Seedia verkkosovelluksesi taustaohjelmana. Seed tarjoaa toimintoja REST- tai GraphQL-sovellusliittymien rakentamiseen reititys- ja todennustuella sekä AuthO-integraatiolla.
MoonZoon on helppokäyttöinen, täyden pinon WebAssembly-tuettu kehys käyttöliittymä- ja taustasovelluksille. Voit kirjoittaa Rustia ilman, että sinun tarvitsee kirjoittaa HTML: ää, CSS: ää ja JavaScriptiä käyttöliittymään tai RESTiä, GraphQL: ää tai SQL: ää taustajärjestelmään. MoonZoon on nopea, yksinkertainen, skaalautuva ja SEO-ystävällinen. Se tarjoaa CLI-sovelluksen helppokäyttöisten verkkosovellusten rakentamiseen.
MoonZoon-projektin filosofia on luoda hyvin yksinkertainen työkalu ilman erityistä terminologiaa, keinotekoisia esteitä tai dogmia. Sen avulla voit keskittyä verkkosovellusten rakentamiseen haluamallasi tavalla. Sinun on oltava asennettuna WASM-Pack, jotta voit rakentaa etuosan. MoonZoon-sovelluksen taustaohjelma toimii Actix-webissä ja Warpissa, jotka ovat molemmat suosittuja Rust-taustaympäristöjä. MoonZoon tarjoaa myös todennustoiminnon.
MoonZoon-dokumentaatiota ei ylläpidetä tällä hetkellä. Voit käyttää työkalua tarkistamalla merkintätiedostot asiakirjoja kansioon projektin kautta GitHub-arkisto.
Olet saattanut olla vuorovaikutuksessa WebAssemblyn kanssa
WebAssembly julkaistiin ensimmäisen kerran vuonna 2017, ja World Wide Web Consortium (W3C) teki WebAssemblysta verkkostandardin vuonna 2019. Vuodesta 2019 lähtien yritykset, kuten Cloudflare, Google ja Dropbox, ovat käyttäneet teknologiaa tuotannossa.
Google Earth käyttää WebAssemblya, Cloudflare käyttää sitä Cloudflare Workersille ja Dropbox käyttää WebAssemblya koodekkina verkkosivustollaan.