WebAssembly tai WASM on verkkoselainten tukema binäärinen käskykanta pinokone-tyyppiselle virtuaalikoneelle.
WebAssemblyn tavoitteena on mahdollistaa raskaiden ohjelmistojen käytön verkkosivuilla. Vaikka WebAssemblyn pääkäyttökohde onkin verkkosovellukset, niin sen käyttö ei ole pelkästään rajoitettu niihin. WebAssembly ei tee oletuksia alustansa suhteen eikä se tarjoa vain verkkokohtaisia ominaisuuksia. Useille eri ohjelmointikielillä kirjoitetut ohjelmat voidaan kääntää WebAssemblyksi, jolloin niitä voi liittää verkkosivuille.[1].
WebAssembly pyrkii lähes natiivitason suorituskykyyn selaimessa käyttäen hyödyksi kaikkea saatavilla olevaa laitteistoa. WebAssemblyllä on binäärinen tiedostomuoto, joka on pieni ja johtuen siitä nopea siirtää verrattuna esimerkiksi JavaScriptin teksipohjaiseen esitysmuotoon.
Suorituskyvystä ja koosta huolimatta WebAssemblyn tarkoituksena ei ole kokonaan korvata JavaScriptiä vaan se toimii sen ohella mahdollistaen sovelluksia, jotka aikaisemmin eivät olisi olleet mahdollista suorituskyvyn puolesta [2].
WebAssemblyn käyttöä verkkosivuilla on hidastanut se, että se ei voi nykyisessä muodossaan muuttaa verkkosivun DOM-puuta, eikä siten voi muuttaa verkkosivua tai lisätä sille interaktiivisuutta. Se voi kuitenkin kutsua JavaScript-funktiota ja välittää sille parametreja. Toiminnallisuuden toteuttamiseksi on kehitetty JavaScript-kirjastoja. Esimerkiksi Emscripten mahdollistaa kirjastojen SDL, OpenGL, OpenAL ja osan POSIXista käytön, jossa tulostuksen kohteena on verkkosivu.[3]
Mozillan kehittämä WASI (WebAssembly System Interface) on yksinkertainen rajapinta, joka sallii WebAssemblysta mm. tiedostojen käsittelyn. Tämän avulla WebAssemblya voi ajaa ilman selainta, eri käyttöjärjestelmille ja suorittimille siirrettävänä ohjelmana.[4]
Historia
WebAssembly julkaistiin vuonna 2017, jonka jälkeen vuonna 2019 siitä tuli World Wide Web Consortiumin suositus. Se voitti palkinnon Programming Languages Software Award vuonna 2021. WebAssemblyn standardia ylläpitää World Wide Web Consortium yhdessä lukuisten yritysten kanssa. Näitä yrityksiä ovat muun muassa Mozilla, Microsoft, Google ja Apple.
Lähteet
Aiheesta muualla