nëna i parë , një interpreter shumë të shpejtë të kodit ndërmjetës WebAssembly, kryesisht i dizajnuar për të ekzekutuar aplikacione WebAssembly në mikrocontrolerë dhe platforma për të cilat nuk ka implementim JIT për WebAssembly, ka memorie të pamjaftueshme për të operuar JIT, ose nuk lejon krijimin e faqeve të ekzekutueshme të memories, të nevojshme për implementimin e JIT. Kodi i projektit është shkruar në gjuhën C dhe në përputhje me licencën MIT.
Wasm3 kalon për pajtueshmëri me specifikimin WebAssembly 1.0 dhe mund të përdoret për të ekzekutuar shumë aplikacione WASI, duke ofruar performancë vetëm 4-5 herë më të ulët se motorët JIT (, ) dhe 11.5 herë më poshtë se ekzekutimi i kodit natyror. Në krahasim me interpreterat e tjerë WebAssembly (, , ), wasm3 rezultoi të jetë 15.8 herë më i shpejtë.
Për të funksionuar, wasm3 kërkon 64Kb memorie për kod dhe 10Kb RAM, çka lejon projektin të ekzekutojë aplikacione të kompiluar në WebAssembly në , si Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) dhe ATmega1284, si dhe në pllakat dhe kompjuterët bazuar në arkitekturat x86, x64, ARM, MIPS, RISC-V dhe Xtensa. Sistemet operative të mbështetura përfshijnë Linux (përfshirë routerët e bazuar në OpenWRT), Windows, macOS, Android dhe iOS. Po ashtu, është e mundur të kompilohet wasm3 në kod ndërmjetës WebAssembly për të ekzekutuar interpreterin në shfletues ose për ekzekutimin e brendshëm (self-hosting).
Performanca e lartë arrihet përmes aplikimit të teknikës (M3), në të cilën për të reduktuar shpenzimet e dekodimit të kodit të bytes, bëhet përkthimi paraprak i kodit të bytes në operacione më të efektshme, duke gjeneruar kodin pseudo-makinë, dhe modeli i ekzekutimit të makines virtuale me grupe kthehet në një qasje më të efektshme me regjistra. Operacionet në M3 përfaqësojnë funksione C, argumentet e të cilave janë regjistrat e makinës virtuale, të cilat mund të pasqyrohen në regjistrat e CPU-së. Sekuencat e zakonshme të operacioneve për optimizim kthehen në operacione të përmbledhura.
Për më tepër, mund të theksohet përdorimit
WebAssembly nĂ« Web. Duke analizuar 948 mijĂ« faqet mĂ« tĂ« njohura sipas renditjes Alexa, studiuesit zbuluan se WebAssembly pĂ«rdoret nĂ« 1639 faqe (0.17%), dmth. nĂ« 1 nga çdo 600 faqe. NĂ« total mbi faqet janĂ« identifikuar 1950 module WebAssembly, nga tĂ« cilat 150 janĂ« unike. Duke shqyrtuar fushĂ«n e aplikimit tĂ« WebAssembly janĂ« bĂ«rĂ« konkluzione tĂ« pasjellshme â nĂ« mĂ« shumĂ« se 50% tĂ« rasteve WebAssembly Ă«shtĂ« pĂ«rdorur pĂ«r qĂ«llime tĂ« kĂ«qija, pĂ«r shembull pĂ«r minimin e kriptomonedhave (55.7%) dhe fshehjen e kodit tĂ« skriptave tĂ« dĂ«mshme (0.2%). Nga aplikimet legjitime tĂ« WebAssembly, Ă«shtĂ« vĂ«rejtur ekzekutimi i bibliotekave (38.8%), krijimi i lojĂ«rave (3.5%) dhe ekzekutimi i kodit tĂ« vet, i shkruar jo nĂ« JavaScript (0.9%). NĂ« 14.9% tĂ« rasteve WebAssembly Ă«shtĂ« pĂ«rdorur pĂ«r analizimin e mjedisit pĂ«r identifikimin e pĂ«rdoruesit (fingerprinting).

Burimi: opennet.ru
