เปเบžเบฅเบ”เบŸเบญเบก JavaScript เบ‚เป‰เบฒเบ‡เป€เบŠเบตเบšเป€เบงเบต Node.js 20.0 เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰

Node.js 20.0 เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เป€เบ›เบฑเบ™เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปƒเบ™ JavaScript. Node.js 20.0 เบ–เบทเบเบˆเบฑเบ”เบ›เบฐเป€เบžเบ”เป€เบ›เบฑเบ™เบชเบฒเบ‚เบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป„เบฅเบเบฐเบเบฒเบง, เปเบ•เปˆเบชเบฐเบ–เบฒเบ™เบฐเบ™เบตเป‰เบˆเบฐเบ–เบทเบเบกเบญเบšเบซเบกเบฒเบเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบ”เบทเบญเบ™เบ•เบธเบฅเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบš. Node.js 20.x เบˆเบฐเบ–เบทเบเบฎเบญเบ‡เบฎเบฑเบšเบˆเบปเบ™เบฎเบญเบ”เบงเบฑเบ™เบ—เบต 30 เป€เบกเบชเบฒ 2026. เบเบฒเบ™เบšเบณเบฅเบธเบ‡เบฎเบฑเบเบชเบฒเบชเบฒเบ‚เบฒ LTS เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ‚เบญเบ‡ Node.js 18.x เบˆเบฐเปเบเปˆเบเบฒเบงเป€เบ–เบดเบ‡เป€เบ”เบทเบญเบ™เป€เบกเบชเบฒ 2025, เปเบฅเบฐเบญเบฑเบ™เปœเบถเปˆเบ‡เบเปˆเบญเบ™เบชเบฒเบ‚เบฒ LTS เบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™ 16.x เบˆเบปเบ™เบฎเบญเบ”เป€เบ”เบทเบญเบ™เบเบฑเบ™เบเบฒ 2023. เบชเบฒเบ‚เบฒ 14.x LTS เบˆเบฐเบขเบธเบ”เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เปƒเบ™เบงเบฑเบ™เบ—เบต 30 เป€เบกเบชเบฒ, เปเบฅเบฐเบชเบฒเบ‚เบฒเบ‚เบญเบ‡ Node.js 19.x เบˆเบฐเบขเบธเบ”เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เปƒเบ™เบงเบฑเบ™เบ—เบต 1 เบกเบดเบ–เบธเบ™เบฒ.

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ•เบปเป‰เบ™เบ•เป:

  • เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ V8 เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เป€เบ›เบฑเบ™เป€เบงเบตเบŠเบฑเปˆเบ™ 11.3, เปƒเบŠเป‰เปƒเบ™ Chromium 113. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบกเบทเปˆเบญเบ—เบฝเบšเบเบฑเบšเบชเบฒเบ‚เบฒ Node.js 19, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ Chromium 107, เบฅเบงเบกเบกเบตเบŸเบฑเบ‡เบŠเบฑเบ™ String.prototype.isWellFormed เปเบฅเบฐ toWellFormed, Array.prototype เปเบฅเบฐ TypedArray. เบงเบดเบ—เบตเบเบฒเบ™เบ•เบปเป‰เบ™เปเบšเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบชเปเบฒเป€เบ™เบปเบฒเป€เบกเบทเปˆเบญเบ›เปˆเบฝเบ™เบงเบฑเบ”เบ–เบธ Array เปเบฅเบฐ TypedArray, เบ—เบธเบ‡ "v" เปƒเบ™ RegExp, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ” ArrayBuffer เปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ SharedArrayBuffer, tail recursion (tail-call) เปƒเบ™ WebAssembly.
  • เบเบปเบ™เป„เบเปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ—เบปเบ”เบฅเบญเบ‡เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบตเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบเบฒเบ™เบฅเบฐเบšเบธเบ—เบธเบ‡ โ€œ-- เบ—เบปเบ”เบฅเบญเบ‡-เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”โ€ เป€เบกเบทเปˆเบญเปเบฅเปˆเบ™. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบชเบฐเป€เบซเบ™เบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบ‚เบฝเบ™ (--allow-fs-write) เปเบฅเบฐเบญเปˆเบฒเบ™ (--allow-fs-read) เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบ”เบฑเบ (--allow-child-process), เปเบฅเบฐ add-ons (--no-addons) ) เปเบฅเบฐ threads (--allow-worker). เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ‚เบฝเบ™เปƒเบชเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต /tmp เปเบฅเบฐเบญเปˆเบฒเบ™เป„เบŸเบฅเปŒ /home/index.js, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธ: node โ€”experimental-permission โ€”allow-fs-write=/tmp/ โ€”allow-fs-read=/home /index.js เบ”เบฑเบ”เบŠเบฐเบ™เบต .js

    เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡, เปเบ™เบฐเบ™เบณเปƒเบซเป‰เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ process.permission.has() เป€เบŠเบฑเปˆเบ™: โ€œprocess.permission.has('fs.write',"/tmp/test").

  • เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ ECMAScript External Module (ESM) เบ—เบตเปˆเบ–เบทเบเป‚เบซเบฅเบ”เบœเปˆเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ "--experimental-loader" เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™ thread เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปเบเบเบญเบญเบเบˆเบฒเบ thread เบ•เบปเป‰เบ™เบ•เป, เบเปเบฒเบˆเบฑเบ”เบˆเบธเบ”เบ•เบฑเบ”เบเบฑเบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเป‚เบกเบ”เบนเบ™ ESM เบ—เบตเปˆเป‚เบซเบฅเบ”. เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš, เบงเบดเบ—เบตเบเบฒเบ™ import.meta.resolve() เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ” synchronously เป€เบกเบทเปˆเบญเป‚เบ—เบซเบฒเบˆเบฒเบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™. เปƒเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบฒเบ‚เบฒเบ•เปเปˆเป„เบ›เบ‚เบญเบ‡ Node.js, เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป‚เบซเบผเบ” ESM เปเบกเปˆเบ™เบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเป‚เบญเบ™เป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡.
  • เป‚เบซเบ™เบ”เป‚เบกเบ”เบนเบ™:test (test_runner), เบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ เปเบฅเบฐเปเบฅเปˆเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปƒเบ™ JavaScript เบ—เบตเปˆเบชเบปเปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบฎเบนเบšเปเบšเบš TAP (Test Anything Protocol), เบกเบตเบ„เบงเบฒเบกเปเบฑเป‰เบ™เบ„เบปเบ‡.
  • เบ—เบตเบกเบ‡เบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เป€เบŠเบดเปˆเบ‡, เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฐเบเบฝเบกเบชเบฒเบ‚เบฒเปƒเบซเบกเปˆ, เป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบเป€เบžเบทเปˆเบญเป€เบฅเบฑเปˆเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบš runtime เบ•เปˆเบฒเบ‡เป†, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เปเบเบ URL, fetch() เปเบฅเบฐ EventTarget. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ EventTarget เป„เบ”เป‰เบ–เบทเบเบซเบผเบธเบ”เบฅเบปเบ‡เป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™ URL.canParse() เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ, เปเบฅเบฐเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบ•เบปเบงเบˆเบฑเบšเป€เบงเบฅเบฒเป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡. เบกเบฑเบ™เบเบฑเบ‡เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐ URL เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡, Ada 2.0, เบ‚เบฝเบ™เปƒเบ™ C ++.
  • เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เบฝเบง (SEA, Single Executable Applications) เบชเบทเบšเบ•เปเปˆ. เบเบฒเบ™เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™ blob เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบˆเบฒเบเป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบ™เบฎเบนเบšเปเบšเบš JSON (เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เป„เบŸเบฅเปŒ JavaScript).
  • เบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบ‚เบญเบ‡ Web Crypto API เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™เบญเบทเปˆเบ™เป†.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบš Windows เปƒเบ™เบฅเบฐเบšเบปเบš ARM64.
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ WASI (WebAssembly System Interface) เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ WebAssembly เบขเบทเบ™เบขเบนเปˆเบ„เบปเบ™เบ”เบฝเบงเป„เบ”เป‰เบชเบทเบšเบ•เปเปˆ. เบ–เบญเบ™เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบฅเบฐเบšเบธเบ—เบธเบ‡เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบžเบดเป€เบชเบ”เป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฒเบกเบฒเบ”เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ WASI.

เปเบžเบฅเบ”เบŸเบญเบก Node.js เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ—เบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฒเบฅเบธเบ‡เบฎเบฑเบเบชเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบงเบฑเบšเปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบฅเบนเบเบ„เป‰เบฒเปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ›เบปเบเบเบฐเบ•เบด. เป€เบžเบทเปˆเบญเบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบš Node.js, เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™เป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบก, เปƒเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” HTTP, SMTP, XMPP, DNS, FTP, IMAP, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ POP3 เปเบฅเบฐเบฅเบนเบเบ„เป‰เบฒ, เป‚เบกเบ”เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡. เบเบฑเบšเบเบญเบšเป€เบงเบฑเบšเบ•เปˆเบฒเบ‡เป†, WebSocket เปเบฅเบฐ Ajax handlers , DBMS connectors (MySQL, PostgreSQL, SQLite, MongoDB), templates engines, CSS engines, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ crypto algorithms เปเบฅเบฐเบฅเบฐเบšเบปเบšเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ” (OAuth), XML parsers.

เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ‚เบฐเบซเบ™เบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ, Node.js เปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ” asynchronous เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบšเบฅเบฑเบญเบเปเบฅเบฐเบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เป‚เบ—เบ„เบทเบ™. เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ multiplexing เปเบกเปˆเบ™ epoll, kqueue, /dev/poll, เปเบฅเบฐเป€เบฅเบทเบญเบ. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ multiplexing เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบซเปเบชเบฐเบซเบกเบธเบ” libuv เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™ add-on เบชเปเบฒเบฅเบฑเบš libev เปƒเบ™เบฅเบฐเบšเบปเบš Unix เปเบฅเบฐ IOCP เปƒเบ™ Windows. เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” libeio เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบชเบฐเบ™เบธเบเป€เบเบตเบเบฐเบ—เบนเป‰, เปเบฅเบฐ c-ares เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบญเบšเบ–เบฒเบก DNS เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเบ›เบดเบ”เบเบฑเป‰เบ™. เบเบฒเบ™เป‚เบ—เบฅเบฐเบšเบปเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เปเบกเปˆเบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฒเบเปƒเบ™เบชเบฐเบ™เบธเบเป€เบเบตเบ‚เบญเบ‡ thread เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบŠเบฑเปˆเบ™เบ•เบปเบงเบˆเบฑเบšเบชเบฑเบ™เบเบฒเบ™, เป‚เบญเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบ„เบทเบ™เบœเปˆเบฒเบ™เบ—เปเปˆเบ—เบตเปˆเบšเปเปˆเบกเบตเบŠเบทเปˆ (เบ—เปเปˆ). เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ” JavaScript เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ V8 เบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ Google (เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, Microsoft เบเปเบฒเบฅเบฑเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ Node.js เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ Chakra-Core).

เบขเบนเปˆเปƒเบ™เบซเบผเบฑเบเบ‚เบญเบ‡เบกเบฑเบ™, Node.js เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบซเบ”เบเบฒเบ™ Tcl, เปเบ•เปˆ loop เป€เบซเบ”เบเบฒเบ™เปƒเบ™ Node.js เบ–เบทเบเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เบˆเบฒเบเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบ„เป‰เบฒเบเบ„เบทเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เป€เบซเบ”เบเบฒเบ™เปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบงเบฑเบšเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ. เปƒเบ™ browser. เป€เบกเบทเปˆเบญเบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบš node.js, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ—เบตเปˆเบ‚เบฑเบšเป€เบ„เบทเปˆเบญเบ™เป‚เบ”เบเป€เบซเบ”เบเบฒเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ” "var result = db.query("select..");" เบเบฑเบšเบเบฒเบ™เบฅเปเบ–เป‰เบฒเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเบฐเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ•เปเปˆเบกเบฒ, Node.js เปƒเบŠเป‰เบซเบผเบฑเบเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” asynchronous, i.e. เบฅเบฐเบซเบฑเบ”เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ "db.query("select..", function (result) {result processing});", เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบˆเบฐเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบฅเบฐเบซเบฑเบ”เบ•เปเปˆเป„เบ›เบ—เบฑเบ™เบ—เบต, เปเบฅเบฐเบœเบปเบ™เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบˆเบฐเบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เป€เบกเบทเปˆเบญเบ‚เปเป‰เบกเบนเบ™เบกเบฒเบฎเบญเบ”.

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

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™