ΠΏΡΡΠ²ΠΈ Π²ΡΠΏΡΡΠΊ , ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ· ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ WebAssembly, ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° WebAssembly ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ Π½ΡΠΌΠ° JIT ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π° WebAssembly, Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΏΠ°ΠΌΠ΅Ρ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ JIT ΠΈΠ»ΠΈ Π½Π΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° JIT. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C ΠΈ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· MIT.
Wasm3 ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° Π·Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° WebAssembly 1.0 ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ WASI ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΡΠ°ΠΌΠΎ 4-5 ΠΏΡΡΠΈ ΠΏΠΎΠ΄ JIT Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»ΠΈΡΠ΅ (, ) ΠΈ 11.5 ΠΏΡΡΠΈ ΠΏΠΎΠ΄ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½Π°ΡΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄. ΠΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΈ Π½Π° WebAssembly (, , ), wasm3 ΡΠ΅ ΠΎΠΊΠ°Π·Π° 15.8 ΠΏΡΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·.
ΠΠ° ΡΠ°Π±ΠΎΡΠ° Ρ wasm3 ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ 64Kb ΠΏΠ°ΠΌΠ΅Ρ Π·Π° ΠΊΠΎΠ΄ ΠΈ 10Kb RAM, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Π² WebAssembly ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° , ΠΊΠ°ΡΠΎ Arduino MKR*, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) ΠΈ ATmega1284, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π½Π° ΠΏΠ»Π°ΡΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΈ x86, x64, ARM, MIPS, RISC-V ΠΈ Xtensa. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π²ΠΊΠ»ΡΡΠ²Π°Ρ Linux (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° OpenWRT), Windows, macOS, Android ΠΈ iOS. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° wasm3 Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ WebAssembly Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Π² Π±ΡΠ°ΡΠ·ΡΡΠ° ΠΈΠ»ΠΈ Π·Π° Π²Π³Π½Π΅Π·Π΄Π΅Π½ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ (self-hosting).
ΠΠΈΡΠΎΠΊΠ°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΡΠ° (M3), ΠΏΡΠΈ ΠΊΠΎΡΡΠΎ Π·Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π±Π°ΠΉΡΠΊΠΎΠ΄ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° ΡΡΠ°Π½ΡΠ»Π°ΡΠΈΡ Π½Π° Π±Π°ΠΉΡΠΊΠΎΠ΄Π° Π² ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠΈ ΠΏΡΠ΅Π²Π΄ΠΎ-ΠΌΠ°ΡΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄, Π° ΠΌΠΎΠ΄Π΅Π»ΡΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ΅ΠΊΠΎΠ²Π°ΡΠ° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° Π² ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π² M3 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ C ΡΡΠ½ΠΊΡΠΈΠΈ, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΡΡΠ°Π·Π΅Π½ΠΈ Π² ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ΅ Π½Π° CPU. Π§Π΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Ρ Π² ΡΠ²ΠΎΠ΄Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π°Π½ΠΎ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ
WebAssembly Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ°. ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΉΠΊΠΈ 948 Ρ
ΠΈΠ»ΡΠ΄ΠΈ ΠΎΡ Π½Π°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΉΡΠΎΠ²Π΅ ΡΠΏΠΎΡΠ΅Π΄ ΡΠ΅ΠΉΡΠΈΠ½Π³Π° Π½Π° Alexa, ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ
Π°, ΡΠ΅ WebAssembly ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° 1639 ΡΠ°ΠΉΡΠ° (0.17%), Ρ.Π΅. Π½Π° 1 ΠΎΡ Π²ΡΠ΅ΠΊΠΈ 600 ΡΠ°ΠΉΡΠ°. ΠΠ±ΡΠΎ Π½Π° ΡΠ°ΠΉΡΠΎΠ²Π΅ΡΠ΅ Π΅ ΠΎΡΠΊΡΠΈΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° 1950 ΠΌΠΎΠ΄ΡΠ»Π° WebAssembly, ΠΎΡ ΠΊΠΎΠΈΡΠΎ 150 ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈ. ΠΡΠΈ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° WebAssembly Π±ΡΡ
Π° Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ Π½Π΅ΠΌΠ°Π»ΠΊΠΎ ΠΎΠ±Π΅Π·ΠΊΡΡΠ°ΠΆΠ°Π²Π°ΡΠΈ ΠΈΠ·Π²ΠΎΠ΄ΠΈ β Π² ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 50% ΠΎΡ ΡΠ»ΡΡΠ°ΠΈΡΠ΅ WebAssembly Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ ΡΠ΅Π»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Π΄ΠΎΠ±ΠΈΠ² Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ²Π°Π»ΡΡΠΈ (55.7%) ΠΈ Π·Π° ΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π½Π° Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ (0.2%). ΠΡ Π»Π΅Π³ΠΈΡΠΈΠΌΠ½ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° WebAssembly Π±ΡΡ
Π° ΠΎΡΠ±Π΅Π»ΡΠ·Π°Π½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (38.8%), ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ³ΡΠΈ (3.5%) ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π΅ Π½Π° JavaScript (0.9%). Π 14.9% ΠΎΡ ΡΠ»ΡΡΠ°ΠΈΡΠ΅ WebAssembly Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΎΠΊΠΎΠ»Π½Π°ΡΠ° ΡΡΠ΅Π΄Π° Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ (fingerprinting).

ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
