Налична Π΅ JavaScript ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Node.js 22.0.0

ИзлСзС Node.js 22.0, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° изпълнСниС Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ прилоТСния Π½Π° JavaScript. Node.js 22.0 Π΅ класифициран Π² ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅Ρ‚Π΅ с Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°, Π½ΠΎ Ρ‚ΠΎΠ·ΠΈ статус Ρ‰Π΅ бъдС ΠΏΡ€ΠΈΡΡŠΠ΄Π΅Π½ само ΠΏΡ€Π΅Π· ΠΎΠΊΡ‚ΠΎΠΌΠ²Ρ€ΠΈ, слСд Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° стабилизацията. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Node.js 22.x Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ Π΄ΠΎ 30 Π°ΠΏΡ€ΠΈΠ» 2027 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° прСдходния LTS ΠΊΠ»ΠΎΠ½ Node.js 20.x Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ Π΄ΠΎ Π°ΠΏΡ€ΠΈΠ» 2026 Π³ΠΎΠ΄ΠΈΠ½Π°, Π° Π½Π° ΠΏΡ€Π΅Π΄-прСдходния LTS ΠΊΠ»ΠΎΠ½ 18.x Π΄ΠΎ Π°ΠΏΡ€ΠΈΠ» 2025 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° мСТдинния ΠΊΠ»ΠΎΠ½ Node.js 21.x Ρ‰Π΅ бъдС ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚Π΅Π½Π° Π½Π° 1 юни 2024 Π³ΠΎΠ΄ΠΈΠ½Π°.

Основни подобрСния:

  • ДвигатСлят V8 Π΅ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ Π΄ΠΎ вСрсия 12.4, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π² Chromium 124. ΠžΡ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² сравнСниС с ΠΊΠ»ΠΎΠ½Π° Node.js 21, Π² ΠΊΠΎΠΉΡ‚ΠΎ бСшС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» V8 11.8, ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ:
    • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ WasmGC, ΠΊΠΎΠ΅Ρ‚ΠΎ улСснява ΠΏΠΎΡ€Ρ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π² WebAssembly Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, написани Π½Π° Π΅Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ ΡΡŠΠ±ΠΈΡ€Π°Ρ‡ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ (Kotlin, PHP, Java ΠΈ Ρ‚.Π½.). WasmGC добавя Π½ΠΎΠ²ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ структури ΠΈ масиви, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°.
    • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Array.fromAsync(), ΠΊΠΎΠΉΡ‚ΠΎ Π² асинхронСн Ρ€Π΅ΠΆΠΈΠΌ Π²Ρ€ΡŠΡ‰Π° Π½ΠΎΠ² СкзСмпляр Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ Array, ΠΊΠΎΠΏΠΈΡ€Π°Π½ ΠΎΡ‚ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° масиви, ΠΊΠΎΠΈΡ‚ΠΎ сС изброяват (iterable) ΠΈΠ»ΠΈ асинхронно сС изброяват (async iterable).
    • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, ΠΊΠ°Ρ‚ΠΎ .map, .filter, .find, .take, .drop, .forEach ΠΈ .reduce.
    • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π° Set, опрСдСлящ колСкция ΠΎΡ‚ стойности ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρˆ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° рСализация Π½Π° Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с мноТСства, ΠΊΠ°Ρ‚ΠΎ прСсичания, обСдинСния, Ρ€Π°Π·Π»ΠΈΠΊΠΈ ΠΈ допълнСния.
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‰ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Maglev, цСлящ Π±ΡŠΡ€Π·ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° високопроизводитСлСн машинСн ΠΊΠΎΠ΄ Π·Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΊΠΎΠ΄ Π½Π° JavaScript. Π’ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Maglev Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ускорява Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΆΠΈΠ²Π΅Π΅Ρ‰ΠΈ CLI прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° тСста Jetstream Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ с 7.5%, Π° тСста Speedometer с 5%.
  • УскорСна Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Ρ‡Ρ€Π΅Π· ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° стойността Π½Π° опцията highWaterMark ΠΎΡ‚ 16 KB Π½Π° 65 KB (опрСдСля Π»ΠΈΠΌΠΈΡ‚Π°, Π΄ΠΎ ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π±ΡƒΡ„Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° записа). Π’Π°Π·ΠΈ промяна Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° консумацията Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚, Π·Π°Ρ‚ΠΎΠ²Π° прилоТСния, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΎΠ±Π΅ΠΌ RAM, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π²ΡŠΡ€Π½Π°Ρ‚ старата стойност Ρ‡Ρ€Π΅Π· ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° setDefaultHighWaterMark().
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° производитСлността Π½Π° API fetch() ΠΈ тСстовия runner Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ²ΠΈΡˆΠ΅Π½Π°Ρ‚Π° СфСктивност ΠΏΡ€ΠΈ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° инстанции Π½Π° AbortSignal. ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° Π΅ производитСлността Π½Π° API, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с синхронната Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‚Π΅ систСми.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π΅Π½Π° Π΅ СкспСримСнтална Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° функцията Β«require()Β» Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° JavaScript ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ESM (ECMAScript Modules) Π² синхронСн Ρ€Π΅ΠΆΠΈΠΌ. ESM ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ замСнят ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ CommonJS, спСцифични Π·Π° Node.js. Π—Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Ρ‡Ρ€Π΅Π· Β«require()Β» ESM ΠΌΠΎΠ΄ΡƒΠ»ΡŠΡ‚ трябва Π΄Π° сС изпълнява Π² синхронСн Ρ€Π΅ΠΆΠΈΠΌ (Π±Π΅Π· await Π½Π° Π³ΠΎΡ€Π½ΠΎ Π½ΠΈΠ²ΠΎ). ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° сС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° Ρ‡Ρ€Π΅Π· Ρ„Π»Π°Π³Π° Β«β€”experimental-require-moduleΒ».
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ СкспСримСнтална Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° стартиранС Π½Π° скриптовС, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π² Ρ„Π°ΠΉΠ»Π° package.json, с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«β€”run Β».
  • ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«node β€”watchΒ» Π΅ прСмСстСна Π² катСгорията Π½Π° стабилнитС с внСдряванС Π½Π° Ρ€Π΅ΠΆΠΈΠΌ Π½Π° наблюдСниС, ΠΊΠΎΠΉΡ‚ΠΎ осигурява Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ рСстарт Π½Π° процСса ΠΏΡ€ΠΈ промяна Π½Π° импортвания Ρ„Π°ΠΉΠ» (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ изпълнСниС Π½Π° Β«node β€”watch index.jsΒ», ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Ρ‰Π΅ сС рСстартира Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈ промяна Π½Π° index.js).
  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ Π²Π³Ρ€Π°Π΄Π΅Π½Π° рСализация Π½Π° API WebSocket, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° WebSocket Π² Ρ€Π΅ΠΆΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π±Π΅Π· нСобходимост ΠΎΡ‚ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ зависимости.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ частична ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° API Navigator.
  • Π’ API Webstreams Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π·Π° компрСсия deflate-raw.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π° node:fsmodule са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ glob ΠΈ globSync Π·Π° ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΡΠ½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ ΠΏΡŠΡ‚ΠΈΡ‰Π° ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Π΅Ρ†.
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ стСковС IPv6. Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Happy Eyeballs Π·Π° Π±ΡŠΡ€Π·ΠΎ ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° IPv6.
  • ОбявСн Π΅ Π·Π° остарял API util.
  • Актуализирани вСрсии Π½Π° зависимоститС: npm 10.5.1, libuv 1.48.0, simdutf 5.2.3, c-ares 1.28.1, zlib 1.3.0.1-motley-24c07df, simdjson Π΄ΠΎ 3.8.0, ada 2.7.7 ΠΈ undici 6.6.0.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Node.js ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅ Π½Π° ΡƒΠ΅Π± прилоТСния, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° създаванС Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ клиСнтски ΠΈ ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ. Π—Π° Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ Π½Π° функционалността Π½Π° прилоТСнията Π·Π° Node.js Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π° голяма колСкция ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π² която ΠΌΠΎΠΆΠ΅ Π΄Π° сС намСрят ΠΌΠΎΠ΄ΡƒΠ»ΠΈ с рСализация Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π·Π° HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° интСграция с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΡƒΠ΅Π± Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²Π΅, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° WebSocket ΠΈ Ajax, ΡΠ²ΡŠΡ€Π·Π²Π°Ρ‰ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° Π‘Π£Π‘Π” (MySQL, PostgreSQL, SQLite, MongoDB), ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ, CSS Π΄Π²ΠΈΠΆΠΊΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ ΠΈ систСми Π·Π° удостовСряванС (OAuth), XML парсСри.

Π—Π° осигуряванС Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° голям Π±Ρ€ΠΎΠΉ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈ заявки Node.js ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° асинхронСн ΠΌΠΎΠ΄Π΅Π» Π·Π° стартиранС Π½Π° ΠΊΠΎΠ΄Π°, основан Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ Ρ€Π΅ΠΆΠΈΠΌ ΠΈ опрСдСлянС Π½Π° callback ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ. ΠšΠ°Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° мултиплСксиранС Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π° ΠΊΠ°Ρ‚ΠΎ epoll, kqueue, /dev/poll ΠΈ select. Π—Π° мултиплСксиранСто Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° libuv, която Π΅ надстройка Π½Π°Π΄ libev Π² Unix систСми ΠΈ Π½Π°Π΄ IOCP Π² Windows. Π—Π° създаванС Π½Π° ΠΏΡƒΠ» ΠΎΡ‚ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° libeio, Π° Π·Π° изпълнСниС Π½Π° DNS заявки Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ Ρ€Π΅ΠΆΠΈΠΌ Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ c-ares. Всички систСмни повиквания, ΠΊΠΎΠΈΡ‚ΠΎ причиняват Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅, сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π²ΡŠΡ‚Ρ€Π΅ Π² поточния ΠΏΡƒΠ» ΠΈ слСд Ρ‚ΠΎΠ²Π°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ сигналнитС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° си ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Ρ‡Ρ€Π΅Π· Π½Π΅Π½Π°Π·ΠΎΠ²Π°Π½ ΠΊΠ°Π½Π°Π» (pipe).

Π˜Π·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° JavaScript ΠΊΠΎΠ΄ сС осигурява Ρ‡Ρ€Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° разработСния ΠΎΡ‚ Google Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π» V8 (Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Microsoft Ρ€Π°Π·Π²ΠΈΠ²Π° вСрсия Π½Π° Node.js с двигатСля Chakra-Core). По ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ Node.js Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€Ρ†ΠΈΡ‚Π΅ Perl AnyEvent, Ruby Event Machine, Python Twisted ΠΈ рСализацията Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π² Tcl, Π½ΠΎ Ρ†ΠΈΠΊΡŠΠ»ΡŠΡ‚ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ (event loop) Π² Node.js Π΅ скрит ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈ наподобява ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π² ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΎ Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€.

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

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