første utgave , en meget rask tolk for WebAssembly-bytecode, hovedsakelig designet for å kjøre WebAssembly-applikasjoner på mikrokontrollere og plattformer der det ikke finnes en JIT-implementering av WebAssembly, hvor det er for lite minne til å kjøre JIT eller der opprettelse av eksekverbare minnesider som er nødvendige for JIT-implementering, ikke tillates. Prosjektkoden er skrevet i C og under the MIT license.
Wasm3 passerer kompatibilitet med spesifikasjonen WebAssembly 1.0 og kan brukes til å kjøre mange WASI-applikasjoner, og tilbyr ytelse som kun er 4–5 ganger lavere enn JIT-motorer (, ) og 11,5 ganger lavere enn kjøring av native kode. Sammenlignet med andre WebAssembly-tolker (, , ), er wasm3 15,8 ganger raskere.
For å kjøre wasm3 kreves det 64 Kb minne for kode og 10 Kb RAM, noe som gjør prosjektet egnet for å kjøre kompilert WebAssembly-applikasjoner på , 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 datamaskiner basert på x86-, x64-, ARM-, MIPS-, RISC-V- og Xtensa-arkitektur. Støttede operativsystemer inkluderer Linux (inkludert rutere basert på OpenWRT), Windows, macOS, Android og iOS. Det er også mulig å kompilere wasm3 til WebAssembly-bytecode for å kjøre tolker i nettleseren eller for innfødt kjøring (self-hosting).
Høy ytelse oppnås gjennom bruk av (M3), hvor forhåndstranslasjon av bytekode til mer effektive operasjoner som genererer pseudomaskinkode, reduserer overheaden ved dekoding av bytekode, og modellen for en stakkbasert virtuell maskin gjøres mer effektivt ved å bruke en registerbasert tilnærming. Operasjoner i M3 representerer C-funksjoner, der argumentene er registrene til den virtuelle maskinen, som kan reflekteres mot CPU-register. Vanlige sekvenser av operasjoner for optimalisering omdannes til sammenfattede operasjoner.
I tillegg kan det nevnes spredning
WebAssembly i web. Etter å ha analysert 948.000 av de mest populære nettstedene rangert av Alexa, fant forskere ut at WebAssembly brukes på 1639 nettsteder (0,17 %), det vil si ett av hver 600 nettsteder. Totalt ble det oppdaget 1950 WebAssembly-moduler på nettstedene, hvorav 150 er unike. Når det gjelder bruken av WebAssembly, ble det trukket noen nedslående konklusjoner — i mer enn 50 % av tilfellene ble WebAssembly brukt til ondsinnede formål, som for eksempel kryptovaluta-gruvedrift (55,7 %) og skjuling av ondsinnede skripters kode (0,2 %). Blant legitime bruksområder for WebAssembly ble utføring av biblioteker (38,8 %), opprettelse av spill (3,5 %) og kjøring av egen kode som ikke er skrevet i JavaScript (0,9 %) nevnt. I 14,9 % av tilfellene ble WebAssembly brukt til miljøanalyse for identifisering av brukeren (fingerprinting).

Kilde: opennet.ru
