рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо Node.js 21.0 рдЙрдкрд▓рдмреНрдз рд╣реИ

Node.js 21.0 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИред Node.js 21.0 рд╢рд╛рдЦрд╛ рдХреЛ 6 рдорд╣реАрдиреЗ рддрдХ рд╕рдорд░реНрдерди рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдиреЗ рд╡рд╛рд▓реЗ рджрд┐рдиреЛрдВ рдореЗрдВ, Node.js 20 рд╢рд╛рдЦрд╛ рдХрд╛ рд╕реНрдерд┐рд░реАрдХрд░рдг рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ LTS рдХрд╛ рджрд░реНрдЬрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ рдФрд░ рдЕрдкреНрд░реИрд▓ 2026 рддрдХ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред Node.js 18.0 рдХреА рдкрд┐рдЫрд▓реА LTS рд╢рд╛рдЦрд╛ рдХрд╛ рд░рдЦрд░рдЦрд╛рд╡ рд╕рд┐рддрдВрдмрд░ 2025 рддрдХ рдЪрд▓реЗрдЧрд╛, рдФрд░ рдЕрдВрддрд┐рдо LTS рд╢рд╛рдЦрд╛ 16.0 рд╕реЗ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЕрдкреНрд░реИрд▓ 2024 рддрдХ рдЪрд▓реЗрдЧрд╛ред

рдореБрдЦреНрдп рд╕реБрдзрд╛рд░:

  • рдлрд╝реЗрдЪ рдПрдкреАрдЖрдИ рдХреЛ рд╕реНрдерд┐рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рд▓реЗрдЦрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди HTTP/1.1 uncie рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдХреЛрдб рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕рдорд╛рди рдПрдкреАрдЖрдИ рдХреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрд░реАрдм рд╣реИред рдПрдкреАрдЖрдИ рдореЗрдВ рдлрд╝реЗрдЪ() рд╡рд┐рдзрд┐ рдФрд░ рд╣реЗрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, HTTP рд╣реЗрдбрд░, рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред const res = рдкреНрд░рддреАрдХреНрд╖рд╛ рдлрд╝реЗрдЪ('https://nodejs.org/api/documentation.json'); рдпрджрд┐ (res.ok) { рд╕реНрдерд┐рд░рд╛рдВрдХ рдбреЗрдЯрд╛ = рдкреНрд░рддреАрдХреНрд╖рд╛ res.json(); рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ(рдбреЗрдЯрд╛); }
  • рд╡реЗрдмрд╕реНрдЯреНрд░реАрдо рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдХреЛ рд╕реНрдерд┐рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдкреАрдЖрдИ рдЖрдкрдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдЖрдиреЗ рдкрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ред Node.js рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream рдФрд░ DecompressionStream рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
  • рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд WebSocket рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рд╡реЗрдмрд╕реЙрдХреЗрдЯ рд╕рдорд░реНрдерди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "--рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ-рд╡реЗрдмрд╕реЙрдХреЗрдЯ" рдзреНрд╡рдЬ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рдХреЙрдордирдЬреЗрдПрд╕ (рдиреЛрдб.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ) рдХреЗ рдмрдЬрд╛рдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓ рдИрдПрд╕рдПрдо (рдИрд╕реАрдПрдордПрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд) рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдореЛрдб рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдкрд░рд┐рд╡рд░реНрддрди рдЙрди рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдкреНрд░рд╛рд░реВрдк рдкреИрдХреЗрдЬ.рдЬреЗрд╕рди рдореЗрдВ "рдкреНрд░рдХрд╛рд░" рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ "--рдЗрдирдкреБрдЯ-рдкреНрд░рдХрд╛рд░" рдзреНрд╡рдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ, рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди (рдИрдПрд╕рдПрдо рдХреЗ рд▓рд┐рдП .mjs, .cjs) рдХреЗ рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯ рд╣реИред рдХреЙрдордирдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрд┐рди рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ CommonJS рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ".js" рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИ) рдХреЛ рдирдпрд╛ рдореЛрдб рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ ESM рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред рдирдИ рдореЙрдбреНрдпреВрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "--рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ-рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рдкреНрд░рдХрд╛рд░" рдзреНрд╡рдЬ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • V8 рдЗрдВрдЬрди рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 11.8 рдореЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд░реЛрдорд┐рдпрдо 118 рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЕрдм ArrayBuffer.prototype.transfer рд╡рд┐рдзрд┐, рд╕рдореВрд╣ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдХреНрд╖рдорддрд╛ (groupBy рд╡рд┐рдзрд┐) рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд▓рд┐рдП WebAssembly рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (i32.add, i32.sub, i32.mul, i64 .add, i64.sub рдФрд░ i64.mul)ред
  • рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдЬрд┐рд╕реНрдЯрд░ рдФрд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХреЙрд▓ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЧреНрд▓реЛрдмрд▓ рдкреНрд░реАрд▓реЛрдб рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рдкреНрд░рддреНрдпреЗрдХ рд░рд╛рдЗрдЯ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдбреНрд░рд╛рдЗрд╡ рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП fs.writeFile рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдХ "рдлреНрд▓рд╢" рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
  • рдпреВрдЖрд░рдПрд▓ рдкрд╛рд░реНрд╕рд┐рдВрдЧ, рдлрд╝реЗрдЪ рдПрдкреАрдЖрдИ, рд╕реНрдЯреНрд░реАрдо, рдиреЛрдб:рдПрдлрдПрд╕ рдФрд░ HTTP рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдХрд╛ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рдиред
  • рд╡реИрд╢реНрд╡рд┐рдХ рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реАрдкреАрдпреВ рдХреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк navigator.hardwareConcurrency рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • "-рдЯреЗрд╕реНрдЯ" рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ, рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд▓реЛрдм рдорд╛рд╕реНрдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк "-рдЯреЗрд╕реНрдЯ **/*.рдЯреЗрд╕реНрдЯ.рдЬреЗрдПрд╕" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
  • рдмрдВрдбрд▓ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ npm 10.2.0 рдФрд░ llhttp 9.1.2 рдкрд╛рд░реНрд╕рд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2019 рдФрд░ macOS рдХреЗ 11.0 рд╕реЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд░реНрд╡рд░ рд░рдЦрд░рдЦрд╛рд╡ рдФрд░ рдирд┐рдпрдорд┐рдд рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Node.js рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕рдВрдЧреНрд░рд╣ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдк HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓, рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рднрд┐рдиреНрди рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ, рд╡реЗрдмрд╕реЙрдХреЗрдЯ рдФрд░ Ajax рд╣реИрдВрдбрд▓рд░, DBMS рдХрдиреЗрдХреНрдЯрд░ (MySQL, PostgreSQL, SQLite, MongoDB), рдЯреЗрдореНрдкреНрд▓реЗрдЯрд┐рдВрдЧ рдЗрдВрдЬрди, CSS рдЗрдВрдЬрди, рдХреНрд░рд┐рдкреНрдЯреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд┐рд╕реНрдЯрдо (OAuth), XML рдкрд╛рд░реНрд╕рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рдеред

рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Node.js рдиреЙрди-рдмреНрд▓реЙрдХрд┐рдВрдЧ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдФрд░ рдХреЙрд▓рдмреИрдХ рд╣реИрдВрдбрд▓рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рд╡рд┐рдзрд┐рдпрд╛рдБ epoll, kqueue, /dev/poll рдФрд░ рдЪрдпрди рд╣реИрдВред рдХрдиреЗрдХреНрд╢рди рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, libuv рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдпреВрдирд┐рдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░ libev рдФрд░ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ IOCP рдХреЗ рд▓рд┐рдП рдПрдХ рдРрдб-рдСрди рд╣реИред рд▓рд┐рдмрд┐рдпреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдереНрд░реЗрдб рдкреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕реА-рдПрд░реЗрд╕ рдХреЛ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдореЛрдб рдореЗрдВ рдбреАрдПрдирдПрд╕ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХрд╛ рдХрд╛рд░рдг рдмрдирдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЛ рдереНрд░реЗрдб рдкреВрд▓ рдХреЗ рдЕрдВрджрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░, рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВрдбрд▓рд░ рдХреА рддрд░рд╣, рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдПрдХ рдЕрдирд╛рдо рдкрд╛рдЗрдк (рдкрд╛рдЗрдк) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рдкрд╕ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди Google рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд V8 рдЗрдВрдЬрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Microsoft рдЪрдХреНрд░-рдХреЛрд░ рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде Node.js рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ)ред

рдЗрд╕рдХреЗ рдореВрд▓ рдореЗрдВ, Node.js рдкрд░реНрд▓ AnyEvent, рд░реВрдмреА рдЗрд╡реЗрдВрдЯ рдорд╢реАрди, Python рдЯреНрд╡рд┐рд╕реНрдЯреЗрдб рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ Tcl рдЗрд╡реЗрдВрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди Node.js рдореЗрдВ рдЗрд╡реЗрдВрдЯ рд▓реВрдк рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЪрд▓ рд░рд╣реЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ. рдиреЛрдб.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЗрд╡реЗрдВрдЯ-рд╕рдВрдЪрд╛рд▓рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "var рдкрд░рд┐рдгрд╛рдо = db.query("select..");" рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рде, Node.js рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдХреЛрдб рдХреЛ "db.query("select..", function (рдкрд░рд┐рдгрд╛рдо) {рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг});" рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рддреБрд░рдВрдд рдЖрдЧреЗ рдХреЗ рдХреЛрдб рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдбреЗрдЯрд╛ рдЖрдиреЗ рдкрд░ рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ