WebAssembly 2.0 เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบกเบตเปƒเบซเป‰

W3C เป„เบ”เป‰เป€เบœเบตเบเปเบžเปˆเบฎเปˆเบฒเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เปƒเบซเบกเปˆเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ WebAssembly 2.0 middleware เปเบฅเบฐ API เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบ‚เบญเบ‡เบกเบฑเบ™, เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆเปƒเบ™เบ—เบปเปˆเบงเบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเปเบฅเบฐเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบฎเบฒเบ”เปเบง. WebAssembly เปƒเบซเป‰ browser-เป€เบญเบเบฐเบฅเบฒเบ”, เบ—เบปเปˆเบงเป„เบ›, เบฅเบฐเบซเบฑเบ”เบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡เบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบˆเบฒเบเบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ•เปˆเบฒเบ‡เป†. เป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ JIT เบชเปเบฒเบฅเบฑเบš WebAssembly, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบฅเบธเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบเป‰เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡.

เป€เบ—เบเป‚เบ™เป‚เบฅเบเบต WebAssembly เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบงเบฝเบเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš, เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบงเบดเบ”เบตเป‚เบญ, เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบชเบฝเบ‡, เบฎเบนเบšเบžเบฒเบšเปเบฅเบฐเบเบฒเบ™เบซเบกเบนเบ™เปƒเบŠเป‰ 3D, เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบเบก, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบฅเบฑเบšเปเบฅเบฐเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบฒเบ‡เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เป‚เบ”เบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เปƒเบ™เบžเบฒเบชเบฒเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเป€เบŠเบฑเปˆเบ™ C / C ++. .

เปƒเบ™เบšเบฑเบ™เบ”เบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡ WebAssembly เปเบกเปˆเบ™เบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆ, เบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ”เบฝเบงเบเบฑเบ™เปƒเบ™เป€เบงเบ—เบตเบ•เปˆเบฒเบ‡เป†. เบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰, WebAssembly เบเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เป€เบชเบตเบกเป€เบ›เบฑเบ™เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบ—เบปเปˆเบงเป„เบ›เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบขเปˆเบฒเบ‡เบ›เบญเบ”เป„เบžเปƒเบ™เบ—เบปเปˆเบงเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™, เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™, เปเบฅเบฐเบญเบธเบ›เบฐเบเบญเบ™, เบšเปเปˆเบˆเปเบฒเบเบฑเบ”เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš.

W3C เป„เบ”เป‰เป€เบœเบตเบเปเบœเปˆเบชเบฒเบกเบชเบฐเบšเบฑเบšเบฎเปˆเบฒเบ‡เบชเปเบฒเบฅเบฑเบš WebAssembly 2.0:

  • WebAssembly Core - เบญเบฐเบ—เบดเบšเบฒเบเป€เบ„เบทเปˆเบญเบ‡ virtual เบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™เบฅเบฐเบซเบฑเบ”เบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡ WebAssembly. เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš WebAssembly เบ–เบทเบเบˆเบฑเบ”เบชเบปเปˆเบ‡เปƒเบ™เบฎเบนเบšเปเบšเบš ".wasm", เบ„เป‰เบฒเบเบ„เบทเบเบฑเบšเป„เบŸเบฅเปŒ ".class" เปƒเบ™ Java, เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ‚เปเป‰เบกเบนเบ™เบชเบฐเบ–เบดเบ”เปเบฅเบฐเบชเปˆเบงเบ™เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ™เบฑเป‰เบ™.
  • WebAssembly JavaScript Interface - เบชเบฐเบซเบ™เบญเบ‡ API เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบš JavaScript. เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบ„เปˆเบฒเปเบฅเบฐเบœเปˆเบฒเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ WebAssembly. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” WebAssembly เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡ JavaScript เปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบเบฑเบšเบฅเบฐเบšเบปเบšเบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เปƒเบ™เปเบšเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ” JavaScript.
  • WebAssembly Web API - เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบเบปเบ™เป„เบเบชเบฑเบ™เบเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ ".wasm". เบฎเบนเบšเปเบšเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ WebAssembly เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เป€เปเบฒเบฐเบชเบปเบกเป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบฅเปเบ–เป‰เบฒเปƒเบซเป‰เป„เบŸเบฅเปŒเป‚เบซเบฅเบ”เป€เบ•เบฑเบกเบ—เบตเปˆ, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ•เบญเบšเบชเบฐเปœเบญเบ‡เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบงเบฑเบš.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบปเป‰เบ™เบ•เปเปƒเบ™ WebAssembly 2.0 เป€เบกเบทเปˆเบญเบ—เบฝเบšเบเบฑเบšเบชเบฐเบšเบฑเบšเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™:

  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ” vector v128 เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ vector เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เปˆเบฒเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™ (SIMD, single instruction multiple data).
  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเปเบฅเบฐเบชเบปเปˆเบ‡เบญเบญเบเบ•เบปเบงเปเบ›เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ—เบปเปˆเบงเป‚เบฅเบเบชเปเบฒเบฅเบฑเบšเบกเบนเบ™เบ„เปˆเบฒเป€เบŠเบฑเปˆเบ™ stack pointers เปƒเบ™ C ++.
  • New float to int conversion เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ–เบดเป‰เบกเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš overflows, เบเบฑเบšเบ„เบทเบ™เบ„เปˆเบฒเบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบซเบผเบทเบชเบนเบ‡เบชเบธเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰ (เบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบš SIMD).
  • เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบ‚เบญเบ‡เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก (เบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเป€เบฅเบดเบเป€เบฅเบฑเบเบ™เป‰เบญเบเบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบฎเบฑเบเบชเบฒเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเปเบฅเบฐเบกเบนเบ™เบ„เปˆเบฒ).
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ•เบฑเบ™เปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบ„เปˆเบฒเบซเบผเบฒเบ (เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบซเบผเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆ).
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡ BigInt64Array เปเบฅเบฐ BigUint64Array JavaScript เป€เบžเบทเปˆเบญเปเบ›เบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ›เบฐเป€เบžเบ” BigInt JavaScript เปเบฅเบฐเบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡ WebAssembly เบ‚เบญเบ‡เบˆเปเบฒเบ™เบงเบ™ 64-bit.
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ›เบฐเป€เบžเบ”เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡ (funcref เปเบฅเบฐ externref) เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡ (เป€เบฅเบทเบญเบ, ref.null, ref.func เปเบฅเบฐ ref.is_null).
  • Memory.copy, memory.fill, memory.init, เปเบฅเบฐเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ data.drop เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบเบ‚เปเป‰เบกเบนเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเบเบฒเบ™เบฅเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ.
  • เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบเบปเบ‡เปเบฅเบฐเบ”เบฑเบ”เปเบ›เบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ (table.set, table.get, table.size, table.grow). เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹, เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เปเบฅเบฐโ€‹เบชเบปเปˆเบ‡โ€‹เบญเบญเบโ€‹เบ•เบฒโ€‹เบ•เบฐโ€‹เบฅเบฒเบ‡โ€‹เบซเบผเบฒเบโ€‹เปƒเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เป‚เบกโ€‹เบ”เบนเบ™โ€‹. เบŸเบฑเบ‡เบŠเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบ / เบ•เบทเปˆเบกเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปƒเบ™เบฎเบนเบšเปเบšเบš batch (table.copy, table.init เปเบฅเบฐ elem.drop).

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster