рдПрдХ рддреЗрдЬрд╝ WebAssembly рджреБрднрд╛рд╖рд┐рдпрд╛ wasm3 рдХреА рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬрд╝

рдЙрдкрд▓рдмреНрдз рдкреНрд░рдердо рд╕рдВрд╕реНрдХрд░рдг wasm3, рдПрдХ рдмрд╣реБрдд рддреЗрдЬрд╝ WebAssembly рдордзреНрдпрд╡рд░реНрддреА рдХреЛрдб рджреБрднрд╛рд╖рд┐рдпрд╛ рдЬреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ WebAssembly рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ WebAssembly рдХреЗ рд▓рд┐рдП JIT рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИ, JIT рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдирд╣реАрдВ рд╣реИ, рдпрд╛ JIT рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЗрдореЛрд░реА рдкреЗрдЬ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред . рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб C рдФрд░ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддрд░рд┐рдд рдПрдордЖрдИрдЯреА рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рддред

wasm3 рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдг WebAssembly 1.0 рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдФрд░ рдХрдИ WASI рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ JIT рдЗрдВрдЬрдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЗрд╡рд▓ 4-5 рдЧреБрдирд╛ рдХрдо рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рд▓рд┐рдлреНрдЯ рдмрдВрдж, рдХреНрд░реЗрдирд▓рд┐рдлреНрдЯ) рдФрд░ рдореВрд▓ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ 11.5 рдЧреБрдирд╛ рдХрдоред рдЬрдм рдЕрдиреНрдп WebAssembly рджреБрднрд╛рд╖рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ (WAC, рдЬрд┐рдВрджрдЧреА, wasm-рдорд╛рдЗрдХреНрд░реЛ-рд░рдирдЯрд╛рдЗрдо), wasm3 15.8 рдЧреБрдирд╛ рддреЗрдЬ рдирд┐рдХрд▓рд╛ред

wasm3 рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 64Kb рдХреЛрдб рдореЗрдореЛрд░реА рдФрд░ 10Kb RAM рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ WebAssembly рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕, рдЬреИрд╕реЗ Arduino MKR*, Arduino рдбреНрдпреВ, рдкрд╛рд░реНрдЯрд┐рдХрд▓ рдлреЛрдЯреЙрди, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 рдмреНрд▓реВ рдкрд┐рд▓ (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 рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред

рджреБрднрд╛рд╖рд┐рдпрд╛ рдореЗрдВ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдореИрд╕реА рдореЗрдЯрд╛ рдорд╢реАрди (рдПрдо3), рдЬреЛ рдмрд╛рдЗрдЯрдХреЛрдб рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдУрд╡рд░рд╣реЗрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдЯрдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдЫрджреНрдо-рдорд╢реАрди рдХреЛрдб-рдЬрдирд░реЗрдЯрд┐рдВрдЧ рдСрдкрд░реЗрд╢рдВрд╕ рдореЗрдВ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдЯреИрдХ-рдЖрдзрд╛рд░рд┐рдд рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдирд┐рд╖реНрдкрд╛рджрди рдореЙрдбрд▓ рдХреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд░рдЬрд┐рд╕реНрдЯрд░-рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдо3 рдореЗрдВ рд╕рдВрдЪрд╛рд▓рди рд╕реА рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдЬрд┐рдирдХреЗ рддрд░реНрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реАрдкреАрдпреВ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдиреБрдХреВрд▓рди рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмрд╛рд░-рдмрд╛рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рд╕рд╛рд░рд╛рдВрд╢ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рд╛рде рд╣реА рдЗрд╕реЗ рдиреЛрдЯ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╢реЛрдз рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╕рд╛рд░
рд╡реЗрдм рдкрд░ рд╡реЗрдмрдЕрд╕реЗрдВрдмрд▓реАред рдПрд▓реЗрдХреНрд╕рд╛ рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рдЕрдиреБрд╕рд╛рд░ 948 рд╣рдЬрд╛рд░ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рд╛рдЗрдЯреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдкрд╛рдпрд╛ рдХрд┐ WebAssembly рдХрд╛ рдЙрдкрдпреЛрдЧ 1639 рд╕рд╛рдЗрдЯреЛрдВ (0.17%) рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдкреНрд░рддреНрдпреЗрдХ 1 рд╕рд╛рдЗрдЯреЛрдВ рдореЗрдВ рд╕реЗ 600 рдкрд░ред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, 1950 рд╡реЗрдмрдЕрд╕реЗрдВрдмрд▓реА рдореЙрдбреНрдпреВрд▓ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП, рдЬрд┐рдирдореЗрдВ рд╕реЗ 150 рдЕрджреНрд╡рд┐рддреАрдп рдереЗред WebAssembly рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рджрд╛рдпрд░реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╕рдордп, рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓реЗ рдЧрдП - 50% рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, WebAssembly рдХрд╛ рдЙрдкрдпреЛрдЧ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦрдирди рдХреНрд░рд┐рдкреНрдЯреЛрдХрд░реЗрдВрд╕реА (55.7%) рдФрд░ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХреЛрдб рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП (0.2%) . WebAssembly рдХреЗ рд╡реИрдз рдЙрдкрдпреЛрдЧреЛрдВ рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЪрд▓рд╛рдирд╛ (38.8%), рдЧреЗрдо рдмрдирд╛рдирд╛ (3.5%), рдФрд░ рдХрд╕реНрдЯрдо рдЧреИрд░-рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдЪрд▓рд╛рдирд╛ (0.9%) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред 14.9% рдорд╛рдорд▓реЛрдВ рдореЗрдВ, WebAssembly рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рдЪрд╛рди (рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ) рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдПрдХ рддреЗрдЬрд╝ WebAssembly рджреБрднрд╛рд╖рд┐рдпрд╛ wasm3 рдХреА рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬрд╝

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ