első kiadás , egy nagyon gyors interaktív WebAssembly köztes kód értelmező, amely elsősorban WebAssembly-alkalmazások mikrokontrolleren és olyan platformokon történő végrehajtására készült, ahol nincs JIT megvalósítás WebAssembly-hez, nincs elegendő memória a JIT működtetéséhez, vagy nem engedélyezett a JIT megvalósításához szükséges végrehajtható memóriaoldalak létrehozása. A projekt kódja C nyelven íródott, és MIT licenc alatt áll.
A wasm3 teljesíti a WebAssembly 1.0 specifikációval való kompatibilitás tesztjeit, és képes sok WASI-alkalmazás futtatására, amely csak 4-5-ször lassabb a JIT-motorokhoz képest (, ) és 11,5-ször lassabb a natív kód futtatásához. A többi WebAssembly értelmezővel való összehasonlításban (, , ) a wasm3 15,8-szor gyorsabbnak bizonyult.
A wasm3 működéséhez 64Kb memória szükséges a kódhoz és 10Kb RAM, ami lehetővé teszi a projekt számára, hogy WebAssembly-re fordított alkalmazásokat futtasson , mint az Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) és ATmega1284, valamint az x86, x64, ARM, MIPS, RISC-V és Xtensa architektúrákon alapuló alaplapokon és számítógépeken. Támogatott operációs rendszerek a Linux (beleértve az OpenWRT alapú routereket), Windows, macOS, Android és iOS. A wasm3 WebAssembly köztes kódra is lefordítható, ami lehetővé teszi az értelmező böngészőben való futtatását vagy beágyazott végrehajtását (self-hosting).
A magas teljesítmény az értelmezőben alkalmazott (M3) technika révén érhető el, amelyben a bájt-kód dekódolási költségeinek csökkentésére előzetes fordítás történik a bájt-kódból hatékonyabb műveletekké, amelyek pszeudo-gépkódot generálnak, és a verem-alapú virtuális gép végrehajtási modellje átformálódik egy hatékonyabb regiszter-alapú megközelítéssé. Az M3 műveletei C-funkciók, amelynek argumentumai a virtuális gép regiszterei, amelyek visszavezethetők a CPU regiszterekre. A gyakran előforduló művelet-sorozatok optimalizálásra össze vonható műveletekké alakulnak.
További megjegyzésként elterjedése
WebAssembly a weben. Elemzők 948 ezer legnépszerűbb Alexa-besorolt weboldal elemzése után kiderítették, hogy a WebAssembly-t 1639 weboldalon használják (0,17%), azaz minden 600. weboldal egyikén. Összesen 1950 WebAssembly-modul betöltése észlelhető, amelyek közül 150 egyedi. A WebAssembly alkalmazási területének megvizsgálásakor kiábrándító következtetésekre jutottak – az esetek több mint 50%-ában a WebAssembly-t rosszindulatú célokra használták, például kriptovaluta bányászatra (55,7%) és rosszindulatú szkriptek kódjának elrejtésére (0,2%). A WebAssembly legitim alkalmazásai között szerepel a könyvtárak végrehajtása (38,8%), játékok készítése (3,5%) és saját, nem JavaScript nyelven írt kód végrehajtása (0,9%). Az esetek 14,9%-ában a WebAssembly-t a felhasználó azonosításához szükséges környezeti elemzésre (fingerprinting) használták.

Forrás: opennet.ru
