esimene vÀljaanne , vÀga kiire vahendid vahe-koodi tÔlkija WebAssembly, mis on peamiselt mÔeldud WebAssembly rakenduste kÀitamiseks mikroprotsessorites ja platvormides, kus JIT WebAssembly rakenduse rakendus puudub, mÀlu on JIT töötamiseks ebapiisav vÔi ei ole lubatud luua kÀitatavaid mÀlulehti, mis on vajalikud JIT rakendamiseks. Projekti kood on kirjutatud keeles C ja on MIT litsentsi all.
Wasm3 lĂ€bib WebAssembly 1.0 spetsifikatsiooniga ĂŒhilduvuse ja seda saab kasutada paljude WASI rakenduste kĂ€itamiseks, pakkudes tulemuslikkust, mis on ainult 4-5 korda madalam kui JIT- mootori (, ) ja 11,5 korda madalam kui natiivkoodi tĂ€itmine. VĂ”rreldes teiste WebAssembly tĂ”lkijatega (, , ), oli wasm3 15,8 korda kiirem.
Wasm3 tööks on vajalik 64Kb mÀlu koodi jaoks ja 10Kb RAM-i, mis vÔimaldab projekti kasutada WebAssembly rakenduste tÀitmiseks , nagu Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) ja ATmega1284, samuti platvormidel ja arvutites, mis pĂ”hinevad arhitektuuridel x86, x64, ARM, MIPS, RISC-V ja Xtensa. Toetatakse operatsioonisĂŒsteeme Linux (sealhulgas OpenWRT-pĂ”hised ruuterid), Windows, macOS, Android ja iOS. Samuti on vĂ”imalik kompileerida wasm3 vaheformaat WebAssembly jaoks, et kĂ€ivitada tĂ”lgendaja brauseris vĂ”i teostada sisemist kĂ€ivitamist (self-hosting).
Kohene jÔudlus saavutatakse tÔlgendaja rakendamisel meetodite kasutamise kaudu (M3), kus kulude vÀhendamiseks baitkoodi dekodeerimisel toimub eelnevalt baitkoodi tÔlkimine tÔhusamatesse toimingutesse, mis genereerivad pseudomasinakoode, ja virna virtuaalse masina vÀljundmudel muudetakse efektiivsemaks registri lÀhenemiseks. M3-s toimingud on C-funktsioonid, mille argumentideks on virtuaalmasina registrid, mis vÔivad peegelduda CPU registritesse. Tihti esinevad toimingute jÀrjestused optimeeritakse kokkuvÔtlikeks toiminguteks.
Lisaks saab mÀrkida levik
WebAssembly veebis. Uurides 948 tuhat kĂ”ige populaarsemat veebisaiti Alexa reitingu alusel, leidsid teadlased, et WebAssembly-d kasutatakse 1639 veebisaidil (0,17%), st 1 igast 600 saidist. Kokku tuvastati veebisaitidel 1950 WebAssembly moodulit, millest 150 on unikaalsed. WebAssembly rakenduste analĂŒĂŒsi kĂ€igus tehti murettekitavad jĂ€reldused â rohkem kui 50% juhtudest kasutati WebAssembly-d pahatahtlikel eesmĂ€rkidel, nĂ€iteks krĂŒptovaluuta kaevandamiseks (55,7%) ja pahavara skriptide kodeerimise varjamiseks (0,2%). Legitiimsetest rakendustest mĂ€rgiti WebAssembly kasutamist raamatukogude tĂ€itmiseks (38,8%), mĂ€ngude loomiseks (3,5%) ja oma koodi tĂ€itmiseks, mis ei ole kirjutatud JavaScriptis (0,9%). 14,9% juhtudest kasutati WebAssembly-d kasutaja identifitseerimise (fingerprinting) keskkonna analĂŒĂŒsimiseks.

Allikas: opennet.ru
