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
