første udgave , en meget hurtig tolk for WebAssembly-mellemkode, primært designet til at køre WebAssembly-applikationer på mikrokontrollere og platforme, hvor der ikke findes nogen JIT-implementation for WebAssembly, hvor der ikke er tilstrækkelig hukommelse til JIT-arbejde eller hvor hukommelsessider, der kræves for JIT-implementering, ikke kan oprettes. Projektets kode er skrevet i C og under MIT-licensen.
Wasm3 er kompatibel med WebAssembly 1.0-specifikationen og kan anvendes til at køre mange WASI-applikationer, hvilket giver en ydeevne, der kun er 4-5 gange langsommere end JIT-motorer (, ) og 11,5 gange langsommere end udførelse af native kode. Sammenlignet med andre WebAssembly-tolkere (, , ), har wasm3 vist sig at være 15,8 gange hurtigere.
For at køre wasm3 kræves 64Kb hukommelse til kode og 10Kb RAM, hvilket gør det muligt at anvende projektet til at udføre WebAssembly-applikationer på , såsom Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) og ATmega1284, samt på kort og computere baseret på x86-, x64-, ARM-, MIPS-, RISC-V- og Xtensa-arkitektur. De understøttede operativsystemer inkluderer Linux (herunder routtere baseret på OpenWRT), Windows, macOS, Android og iOS. Det er også muligt at kompilere wasm3 til WebAssembly-mellemkode for at køre tolken i en browser eller til selvhosting.
Den høje ydeevne opnås ved at anvende teknikken (M3), hvor bytekode dekodningsomkostninger reduceres ved proaktiv oversættelse af bytekoden til mere effektive operationer, der genererer pseudo-maskinkode, og hvor den stack-baserede virtuelle maskines udførelsesmodel transformeres til en mere effektiv registreringsmetode. Operationer i M3 er C-funktioner, hvis argumenter er virtuelle maskinregistre, som kan afspejles i CPU-registre. Hyppigt forekommende operation sekvenser optimeres til kompositoperationer.
Yderligere kan det nævnes distribution
WebAssembly på nettet. Ved at analysere 948.000 af de mest populære hjemmesider ifølge Alexa, har forskere fastslået, at WebAssembly anvendes på 1.639 hjemmesider (0,17%), dvs. på 1 ud af hver 600 hjemmesider. I alt er der registreret 1.950 WebAssembly-moduler på disse hjemmesider, hvoraf 150 er unikke. Ved undersøgelsen af anvendelsesområderne for WebAssembly blev der draget bekymrende konklusioner — i mere end 50% af tilfældene blev WebAssembly anvendt til ondsindede formål, såsom kryptovaluta-mining (55,7%) og skjulning af kode fra ondsindede scripts (0,2%). Blandt legitime anvendelser af WebAssembly blev udførelse af biblioteker bemærket (38,8%), spildesign (3,5%) og udførelse af brugerdefineret kode, der ikke er skrevet i JavaScript (0,9%). I 14,9% af tilfældene blev WebAssembly brugt til miljøanalyse til identifikation af brugeren (fingerprinting).

Kilde: opennet.ru
