Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π΅ Wasmer 3.0, инструмСнтариум Π·Π° създаванС Π½Π° прилоТСния Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° WebAssembly

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ трСтият Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π΅Π½ ΡŠΠΏΠ΄Π΅ΠΉΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Wasmer, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π° runtime Π·Π° изпълнСниС Π½Π° WebAssembly ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Π’ΠΎΠ·ΠΈ инструмСнт ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° създаванС Π½Π° унивСрсални прилоТСния, способни Π΄Π° работят Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΎ изпълнСниС Π½Π° Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΊΠΎΠ΄. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ написан Π½Π° Π΅Π·ΠΈΠΊΠ° Rust ΠΈ сС разпространява ΠΏΠΎΠ΄ MIT Π»ΠΈΡ†Π΅Π½Π·.

Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° стартиранС Π½Π° Π΅Π΄Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ сС осигурява Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π² нискоуровнСв WebAssembly ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС изпълнява Π½Π° всяка ОБ ΠΈΠ»ΠΈ Π΄Π° сС Π²Π³Ρ€Π°ΠΆΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ прСдставляват Π»Π΅ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, Π² ΠΊΠΎΠΈΡ‚ΠΎ сС изпълнява псСвдокод Π·Π° WebAssembly. Π’Π΅Π·ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π½Π΅ са ΠΏΡ€ΠΈΠ²ΡŠΡ€Π·Π°Π½ΠΈ към ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ ΠΊΠΎΠ΄, написан ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π½Π° ΠΊΠ°ΠΊΡŠΠ²Ρ‚ΠΎ ΠΈ Π΄Π° Π΅ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅. Π—Π° компилация Π² WebAssembly ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡƒΠΌΡŠΡ‚ Emscripten. Π—Π° транслация ΠΎΡ‚ WebAssembly Π² машинСн ΠΊΠΎΠ΄ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ (Singlepass, Cranelift, LLVM) ΠΈ ΠΌΠΎΡ‚ΠΎΡ€ΠΈ (с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° JIT ΠΈΠ»ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° машинСн ΠΊΠΎΠ΄).

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚Π° са ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ основната систСма Π² sandbox срСда ΠΈ ΠΈΠΌΠ°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ само Π΄ΠΎ обявСнитС функционалности (ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° сигурност, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ β€” Π·Π° дСйствия с всСки рСсурс (Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, сокСти, систСмни повиквания ΠΈ Ρ‚.Π½.), Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ прСдоставСни ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²Π°). Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° ΠΈ взаимодСйствиСто със систСмата сС осигурява Ρ‡Ρ€Π΅Π· API WASI (WebAssembly System Interface), прСдоставящ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΈ интСрфСйси Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, сокСти ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, прСдоставСни ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° позволява постиганС Π½Π° производитСлност Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° прилоТСния, Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ Ρ‚Π°Π·ΠΈ Π½Π° Ρ€ΠΎΠ΄Π½ΠΈΡ‚Π΅ сборки. Π‘ Native Object Engine Π·Π° WebAssembly ΠΌΠΎΠ΄ΡƒΠ»Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° машинСн ΠΊΠΎΠ΄ ("wasmer compile β€”native" Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ .so, .dylib ΠΈ .dll), Π·Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ runtime, Π½ΠΎ сС Π·Π°ΠΏΠ°Π·Π²Π°Ρ‚ всички Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° sandbox изолация. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ доставянСто Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ с Π²Π³Ρ€Π°Π΄Π΅Π½ Wasmer. Π—Π° създаванС Π½Π° надстройки ΠΈ допълнСния сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ Rust API ΠΈ Wasm-C-API.

Π—Π° Π΄Π° стартиратС WebAssembly ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° инсталиратС runtime-a Wasmer Π² систСмата, ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π±Π΅Π· външни зависимости ("curl https://get.wasmer.io -sSfL | sh"), ΠΈ Π΄Π° стартиратС нСобходимия Ρ„Π°ΠΉΠ» ("wasmer test.wasm"). ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ сС разпространяват ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ WebAssembly ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ пакСтния ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ WAPM. Wasmer ΡΡŠΡ‰ΠΎ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, която ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π²Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° WebAssembly ΠΊΠΎΠ΄ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir ΠΈ Java.

Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² Wasmer 3.0:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° създаванС Π½Π° Ρ€ΠΎΠ΄Π½ΠΈ изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° всякакви ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ. Напълно Π΅ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° "wasmer create-exe", която позволява ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ» с ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ WebAssembly ΠΊΠΎΠ΄ Π² самостоятСлни изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈΡ‚Π΅ Linux, Windows ΠΈ macOS, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° работят Π±Π΅Π· инсталиранС Π½Π° самия Wasmer.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° стартиранС Π½Π° WAPM ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° wapm.io, Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° "wasmer run". НапримСр, ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° "wasmer run python/python" Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ изтСглянС ΠΎΡ‚ рСпозитория wapm.io Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° python ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ стартиранС.
  • Напълно Π΅ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Wasmer Rust API, Π² ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ ΡΡ‚ΠΈΠ»ΡŠΡ‚ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ Π΅ осигурСна Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° бСзопасно Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Wasm ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Π² структурата Store. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ Π½ΠΎΠ²Π° структура MemoryView, която позволява Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΈ записванС Π½Π° Π΄Π°Π½Π½ΠΈ Π² Π»ΠΈΠ½Π΅ΠΉΠ½Π° област Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ wasmer-js Π·Π° стартиранС Π½Π° Wasmer Π² ΡƒΠ΅Π± Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ ΠΈ взаимодСйствиС с Π½Π΅Π³ΠΎ ΠΎΡ‚ JavaScript, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° wasm-bindgen. По своитС Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ wasmer-js ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ wasmer-sys, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ Π·Π° стартиранС Π½Π° Wasmer Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми.
  • Π”Π²ΠΈΠΆΠΊΠΈΡ‚Π΅ са опростСни. ВмСсто ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Π΄Π²ΠΈΠΆΠΊΠΈ Π·Π° JIT, Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΠΈ статично ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ (Universal, Dylib, StaticLib) сСга сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π΅Π΄ΠΈΠ½ ΠΎΠ±Ρ‰ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π° сС управлява Π½Π° Π½ΠΈΠ²ΠΎ настройка Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅.
  • Π—Π° дСсСриализация Π½Π° Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΈΡ‚Π΅ Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΡŠΡ‚ rkyv, осигуряващ Ρ€Π°Π±ΠΎΡ‚Π° Π² Ρ€Π΅ΠΆΠΈΠΌ zero-copy, Ρ‚.Π΅. Π½Π΅ изискващ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‰ дСсСриализация само с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ прСдоставСния Π±ΡƒΡ„Π΅Ρ€. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° rkyv Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ скоростта Π½Π° стартиранС.
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° Π΅Π΄Π½ΠΎΠΏΡ€ΠΎΡ…ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Singlepass, Π² ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с мноТСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ (multi-value), ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° Π΅ надСТдността Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΊΠ°Π΄Ρ€ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½a Π΅ рСализацията Π½Π° API WASI (WebAssembly System Interface). РСшСни са ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² интСрфСйса Π½Π° WASI Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма. Π’ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏΠΎΠ²Π΅ са ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° WAI (WebAssembly Interfaces), ΠΊΠΎΠ΅Ρ‚ΠΎ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ Ρ‰Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster