esimene vÀljaanne , vÀga kiire vahetoimingute tÔlgendi WebAssembly jaoks, mis on peamiselt mÔeldud WebAssembly rakenduste kÀitamiseks mikroprotsessoritel ja platvormidel, kus JIT-i rakenduste toetuseks ei ole lahendust, mÀlu korralikuks toimimiseks ei ole piisavalt vÔi ei luba kÀideldavad mÀlulehed, mis on vajalikud JIT-i tÀitmiseks. Projekti kood on kirjutatud C keeles ja MIT litsentsi alusel.
Wasm3 lĂ€bib WebAssembly 1.0 spetsifikatsiooni ĂŒhilduvuse ja seda saab kasutada paljude WASI rakenduste kĂ€itamiseks, tagades jĂ”udluse, mis on vaid 4-5 korda madalam kui JIT-mootorite (, ) ja 11,5 korda madalam vĂ”rreldes natiivse koodi tĂ€itmisega. Muude WebAssembly tĂ”lgenditega vĂ”rreldes (, , ), osutus wasm3 15,8 korda kiirem.
Wasm3 töötamiseks on vajalik 64Kb mÀlu koodi ja 10Kb RAM-i jaoks, mis vÔimaldab projekti kasutada WebAssembly rakenduste kÀitamiseks , 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 x86, x64, ARM, MIPS, RISC-V ja Xtensa arhitektuurides pĂ”hinevatel plaatidel ja arvutitel. Toetatud operatsioonisĂŒsteemideks on Linux (sealhulgas OpenWRT pĂ”hised ruuterid), Windows, macOS, Android ja iOS. Samuti on vĂ”imalik ĐșĐŸĐŒĐżĐžĐ»ĐžŃĐŸĐČаŃŃ wasm3 WebAssembly vahetoode tĂ€itmiseks tĂ”lgendis brauseris vĂ”i sisemise kĂ€itamise (self-hosting) jaoks.
KĂ”rge jĂ”udlus saavutatakse tĂ”lgendis kasutatava tehnika tĂ”ttu (M3), kus ĂŒlekande kulu vĂ€hendamiseks tĂ”lgetakse bytecode eelnevalt tĂ”husamateks toiminguteks, mis genereerivad pseudo-masinkoodi, ja virnastatud virtuaalmasina tĂ€itmismodeli muudetakse tĂ”husamaks registrivĂ”tteks. M3 toimingud on C-funktsioonid, mille argumentideks on virtuaalmasina registrid, mis vĂ”ivad olla peegeldatud CPU registritele. Tihti esinevad toimingute jĂ€rjestused optimeeritakse kokkuvĂ”tlikeks toiminguteks.
Lisaks vÔib mÀrkida leviku
WebAssembly veebis. AnalĂŒĂŒsides 948 tuhandet kĂ”ige populaarsemat veebisaiti Alexa edetabelis, leidsid teadlased, et WebAssembly't kasutatakse 1639 saidil (0,17%), st 1 igast 600 saidist. Kokku tuvastati saitidel 1950 WebAssembly mooduli laadimist, millest 150 on unikaalsed. WebAssembly rakenduste valdkonna uurimise kĂ€igus tehtud jĂ€reldused olid murettekitavad â ĂŒle 50% juhtudest kasutati WebAssemblyâd kurjasti, nĂ€iteks krĂŒptovaluutade kaevandamiseks (55,7%) ja pahatahtlike skriptide koodi varjamiseks (0,2%). Legitiimsetest rakendustest olid mĂ€rkida teekide tĂ€itmine (38,8%), mĂ€ngude loomine (3,5%) ja isikliku koodi tĂ€itmine, mis ei ole kirjutatud JavaScriptis (0,9%). 14,9% juhtudest kasutati WebAssemblyât keskkonna analĂŒĂŒsimiseks kasutaja tuvastamiseks (fingerprinting).

Allikas: opennet.ru
