Π‘ΡΡΡΠΎΡ ΡΠ΅ ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Node.js 23.0.0, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° JavaScript. Node.js 23.0 Π΅ ΠΎΡΠ½Π΅ΡΠ΅Π½ ΠΊΡΠΌ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π² ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 7 ΠΌΠ΅ΡΠ΅ΡΠ° (Π΄ΠΎ ΡΠ½ΠΈ 2025 Π³ΠΎΠ΄ΠΈΠ½Π°). Π ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ Π΄Π½ΠΈ ΡΠ΅ Π·Π°Π²ΡΡΡΠΈ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΊΠ»ΠΎΠ½Π° Node.js 22, ΠΊΠΎΠΉΡΠΎ Π½Π° 29 ΠΎΠΊΡΠΎΠΌΠ²ΡΠΈ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ ΡΡΠ°ΡΡΡ LTS ΠΈ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π΄ΠΎ Π°ΠΏΡΠΈΠ» 2027 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ LTS ΠΊΠ»ΠΎΠ½ΠΈ Node.js 20.x ΠΈ 18.x ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΄ΠΎ Π°ΠΏΡΠΈΠ» 2026 ΠΈ 2025 Π³ΠΎΠ΄ΠΈΠ½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° TypeScript, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ²Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° Ρ ΠΎΠΏΡΠΈΠΈ Β«βexperimental-strip-typesΒ» ΠΈ Β«βexperimental-transform-typesΒ». ΠΡΠΈ ΠΏΡΡΠ²Π°ΡΠ° ΠΎΠΏΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ TypeScript ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ Π·Π° ΡΠΎΠ·ΠΈ Π΅Π·ΠΈΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°, ΠΊΠΎΠ΄ΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° Π² JavaScript Π±Π΅Π· ΡΠΈΠΏΠΎΠ²Π΅). ΠΡΠΎΡΠ°ΡΠ° ΠΎΠΏΡΠΈΡ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π½Π° TypeScript, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·Π±ΡΠ°Π½ΠΈΡ ΡΠΈΠΏ (enum) ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° (namespace), Π² JavaScript ΠΊΠΎΠ΄.
- ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Β«require()Β» Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° JavaScript ΠΌΠΎΠ΄ΡΠ»ΠΈ ESM (ECMAScript Modules) Π² ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ. ESM ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² Π±ΡΠ°ΡΠ·ΡΡΠΈ ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ CommonJS, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° Node.js. ΠΠ° Π΄Π° ΡΠ΅ Π·Π°ΡΠ΅Π΄ΠΈ ΡΡΠ΅Π· Β«require()Β» Π² Node.js, ESM ΠΌΠΎΠ΄ΡΠ»ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ (Π±Π΅Π· await Π½Π° Π³ΠΎΡΠ½ΠΎ Π½ΠΈΠ²ΠΎ).
- ΠΡΠΈΠ³ΡΡΠ΅Π½ΠΎ Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ESM ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π±Π΅Π· ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Β«.jsΒ». ΠΠΎ-ΡΠ°Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ΅ ΡΡΠ΅ΡΠΈΡΠ°Ρ Π° ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ CommonJS, Π°ΠΊΠΎ Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡ Π² ΡΡΡΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΡΠ°ΠΉΠ» package.json Π½Π΅ ΡΠ΅ ΡΠΊΠ°Π·Π²Π°ΡΠ΅ ΡΠ²Π½ΠΎ ΡΠ΅Ρ Π½ΠΈΡΡ ΡΠΈΠΏ (Β«typeΒ»: Β«moduleΒ»). Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π·Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠΈΠΉΡΠΎ ΡΠΈΠΏ Π½Π΅ Π΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ Π² package.json, ΠΏΡΡΠ²ΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° ΡΠ΅ Π·Π°ΡΠ΅Π΄ΠΈ ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄ΡΠ» CommonJS, Π° Π°ΠΊΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎΠ³Π°Π²Π° ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄ΡΠ» ESM.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π±ΡΠ°ΡΠ·ΡΡΠΈΡΠ΅ API Web Storage, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ (ΠΊΠ»Π°Ρ localStorage) ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ (ΠΊΠ»Π°Ρ sessionStorage) ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΡΠΎΡΠΌΠ°Ρ ΠΊΠ»ΡΡ/ΡΡΠΎΠΉΠ½ΠΎΡΡ. ΠΠ° Π΄Π° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Web Storage, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Ρ ΡΠ»Π°Π³Π° Β«βexperimental-webstorageΒ» ΠΈ ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΡΡ ΠΊΡΠΌ ΡΠ°ΠΉΠ»Π° Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΡΡΠ΅Π· ΡΠ»Π°Π³Π° Β«βlocalstorage-fileΒ».
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ API SQLite Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ SQL Π΅Π·ΠΈΠΊ Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° SQLite. ΠΡΠ²Π΅Π½ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π² ΡΠ°ΠΉΠ» Π½Π° Π΄ΠΈΡΠΊΠ°, ΡΡ ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠ°ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»Π° ΡΠ΅ ΡΠΊΠ°ΠΆΠ΅ Β«:memory:Β». ΠΠ΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈΡΡ API Web Storage Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π²ΡΡΡ Ρ SQLite, ΠΊΠΎΠ΅ΡΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° SQLite ΡΡΠ΅Π΄ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Π·Π° Node.js.
- ΠΠ±ΡΠ²Π΅Π½Π° Π΅ ΡΡΠ°Π±ΠΈΠ»Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«node βrunΒ», ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π² ΡΠ°ΠΉΠ»Π° package.json.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ ΠΊΠΎΠ΄ Π½Π° Π΄ΠΈΡΠΊΠ° Π·Π° ΡΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅. ΠΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΡΡΠ΅Π· ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° NODE_COMPILE_CACHE. ΠΠΎ ΡΠ²ΠΎΠ΅ΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΡΠ²Π° ΠΏΠ°ΠΊΠ΅ΡΠ° v8-compile-cache, Π½ΠΎ ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Ρ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ ESM.
- ΠΠ·Π²ΡΡΡΠ΅Π½Π° Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΎΠ±Π΅ΠΊΡΠ° Buffer, ΠΊΠΎΠ΅ΡΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Buffer.copy() ΠΈ Buffer.write().
- ΠΠΎΠ²ΠΈΡΠ΅Π½Π° Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° node:fs, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ ΠΈ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° ΠΊΠΎΠ΄ Π½Π° C++ Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°.
- ΠΠ²ΠΈΠΆΠΎΠΊΡΡ V8 Π΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΄ΠΎ Π²Π΅ΡΡΠΈΡ 12.9, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π² Chromium 129.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° 32-Π±ΠΈΡΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ ΠΠ‘ Windows Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ°.
- ΠΠΎΡΠ°Π΄ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ° C++20, Π² Node.js ΠΈ Π΄Π²ΠΈΠΆΠΊΠ° V8, ΡΠ° ΠΏΠΎΠ²ΠΈΡΠ΅Π½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° ΠΊΡΠΌ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° GCC. ΠΠ° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Node.js ΡΠ΅Π³Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π²Π΅ΡΡΠΈΡ GCC 12.
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Node.js ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡΠΎ Π·Π° ΡΡΡΠ²ΡΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ Π½Π° Web ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ ΠΈ ΡΡΡΠ²ΡΡΠ½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ. ΠΠ° ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π·Π° Node.js Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½Π° Π³ΠΎΠ»ΡΠΌΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π² ΠΊΠΎΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΡΠ²ΡΡΠΈ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ web ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²Π΅, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° WebSocket ΠΈ Ajax, ΠΊΠΎΠ½Π΅ΠΊΡΠΎΡΠΈ ΠΊΡΠΌ Π‘Π£ΠΠ (MySQL, PostgreSQL, SQLite, MongoDB), ΡΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡΠΈ, CSS Π΄Π²ΠΈΠΆΠ΅ΡΠΈ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»ΠΈ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ°Π»Π³ΠΎΡΠΈΡΠΌΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ (OAuth), XML ΠΏΠ°ΡΡΠ΅ΡΠΈ.
ΠΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, Node.js ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΡΠ΅ΠΆΠΈΠΌ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° callback ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ. ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅, Π²ΠΊΠ»ΡΡΠ²Π°Ρ epoll, kqueue, /dev/poll ΠΈ select. ΠΠ° ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libuv, ΠΊΠΎΡΡΠΎ Π΅ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° Π½Π°Π΄ libev Π² Unix ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ Π½Π°Π΄ IOCP Π² Windows. ΠΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ» ΠΎΡ Π½ΠΈΡΠΊΠΈ (thread pool) Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° 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
