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

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

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

Π—Π° изпълнСниС Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ WebAssembly ΠΈΠ»ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ трансформиранС Π² машинСн ΠΊΠΎΠ΄ Π·Π° Ρ†Π΅Π»Π΅Π²Π°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ:

  • Π‘Π΅ΠΊΠ΅Π½Π΄ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Singlepass, ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΈ.
  • Π‘Π΅ΠΊΠ΅Π½Π΄ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π½Π° ΠΊΠΎΠ΄ Cranelift, ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½ Π·Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.
  • Π‘Π΅ΠΊΠ΅Π½Π΄ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° LLVM, ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ внСдрСния.
  • Π‘Π΅ΠΊΠ΅Π½Π΄ Π·Π° стартиранС Π² ΡƒΠ΅Π± Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°.
  • Π‘Π΅ΠΊΠ΅Π½Π΄ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° JavaScript двигатСля JavascriptCore, ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° macOS.
  • Π‘Π΅ΠΊΠ΅Π½Π΄ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° JavaScript двигатСля V8, ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½ Π·Π° прилоТСния Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈΡ‚Π΅ iOS ΠΈ Android.
  • Π‘Π΅ΠΊΠ΅Π½Π΄ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Wasmi, ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½ Π·Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΈ ΠΈ Rust ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (nostd).
  • Π‘Π΅ΠΊΠ΅Π½Π΄ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° runtime WAMR, ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½ Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° iOS.

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

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

Π—Π° стартиранС Π½Π° WebAssembly ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° сС инсталира Π² систСмата runtime 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 5.0:

  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° WebAssembly Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π°.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ СкспСримСнталСн Π±Π΅ΠΊΠ΅Π½Π΄, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Π»Π΅ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Wasmi, ΠΊΠΎΠΉΡ‚ΠΎ позволява изпълнСниС Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ WebAssembly Π² рСсурсоограничСни срСди.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ СкспСримСнталСн Π±Π΅ΠΊΠ΅Π½Π΄ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° WebAssembly runtime WAMR (WebAssembly Micro Runtime), ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° рСсурси ΠΈ подходящ Π·Π° устройства с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ СкспСримСнталСн Π±Π΅ΠΊΠ΅Π½Π΄ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° JavaScript двигатСля v8, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ с ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π° Chromium. ΠžΡΠ½ΠΎΠ²Π½ΠΎΡ‚ΠΎ прСдимство Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° V8 Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° вградСният ΠΎΡ‚Π»Π°ΠΆΠ΄Π°Ρ‡ ΠΈ инструмСнтариум Π·Π° ΡƒΠ΅Π± Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π° функционалност Π·Π° WebAssembly, ΠΊΠ°Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°.
  • Π’ Π±Π΅ΠΊΠ΅Π½Π΄Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ LLVM, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° СкспСримСнтална ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Loongarch64.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° iOS, Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ WAMR, Wasmi ΠΈ V8.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Emscripten Π΅ спряна.
  • Актуализирани са зависимоститС, срСд ΠΊΠΎΠΈΡ‚ΠΎ са LLVM 18, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° ΠΊΠΎΠ΄ Cranelift 27 ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΡƒΡŠΡ€ΠΊΡŠΡ‚ rkyv 0.8.
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ производитСлността. НапримСр, ΠΏΡ€ΠΈ изпълнСниС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ дСсСриализация Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ сС наблюдава ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° производитСлността Π΄ΠΎ 50%.
    Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π΅ Wasmer 5.0, инструмСнтариум Π·Π° създаванС Π½Π° прилоТСния Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° WebAssembly
    Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π΅ Wasmer 5.0, инструмСнтариум Π·Π° създаванС Π½Π° прилоТСния Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° WebAssembly
    Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π΅ Wasmer 5.0, инструмСнтариум Π·Π° създаванС Π½Π° прилоТСния Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° WebAssembly
    Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π΅ Wasmer 5.0, инструмСнтариум Π·Π° създаванС Π½Π° прилоТСния Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° WebAssembly
    Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π΅ Wasmer 5.0, инструмСнтариум Π·Π° създаванС Π½Π° прилоТСния Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° WebAssembly
    Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π΅ Wasmer 5.0, инструмСнтариум Π·Π° създаванС Π½Π° прилоТСния Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° WebAssembly
    Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π΅ Wasmer 5.0, инструмСнтариум Π·Π° създаванС Π½Π° прилоТСния Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° WebAssembly

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

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