Mozilla spetsialistid esitasid projekti WASI (WebAssembly System Interface), mille eesmärk on arendada API-sid tavaliste rakenduste loomiseks, mis töötavad väljaspool brauserit. Jutt on algselt platvormidevahelisest ühilduvusest ja kõrgest turvalisusest sellistes rakendustes.

Nagu märgitud, käivitatakse need spetsiaalses „liivakastis” ning neil on juurdepääs failidele, failisüsteemile, võrgusoketitele, taimeritele jne. Programmi saab teha ainult eelnevalt lubatud toiminguid.
Arvestades, et WebAssembly pseudokood on platvormiülese assembleri keele variant, võimaldab JIT-i kasutamine saavutada kõrget jõudlust, mis sarnaneb kohandatud rakendustega. Praegu on esitatud baasilisete POSIX API-de (failid, soketid jne) teostus, kuid hetkel puudub toetus lukustusele ja asünkroonsele sisend-/väljundile. Tulevikus oodatakse krüptograafia, 3D-graafika, andurite ja meedia modifikatsioonide moodulite ilmumist.

Samuti tuleb märkida, et Fastly projekt esitas Lucet kompilaatori WebAssembly rakenduste jaoks. See võimaldab ohutult käitada kolmandate osapoolte programme WebAssembly sees teiste rakenduste, näiteks pistikprogrammide, raames. Kompilaator on kirjutatud Rust keeles ja toetab koodi C, Rust ja TypeScript keeles.
Muidugi jääb veel palju küsimusi sellise lähenemise turvalisuse osas. Koodi käitamine „liivakastis” tundub üsna kummaliselt seostatuna põhitäitmise süsteemi funktsioonidega, seega vajab see küsimus veel selgitamist. Lisaks pole selge, millised programmid peaksid sellises režiimis töötama ja kuidas tuleb nende käitumist jälgida.
Allikas: 3dnews.ru
