Node.js 22.0 ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲಾಗಿದೆ, ಇದು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ನೆಟ್ವರ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಚಾಲನೆ ಮಾಡುವ ವೇದಿಕೆಯಾಗಿದೆ. Node.js 22.0 ಅನ್ನು ದೀರ್ಘಾವಧಿಯ ಬೆಂಬಲ ಶಾಖೆಯಾಗಿ ವರ್ಗೀಕರಿಸಲಾಗಿದೆ, ಆದರೆ ಸ್ಥಿರೀಕರಣದ ನಂತರ ಈ ಸ್ಥಿತಿಯನ್ನು ಅಕ್ಟೋಬರ್ನಲ್ಲಿ ಮಾತ್ರ ನಿಯೋಜಿಸಲಾಗುತ್ತದೆ. Node.js 22.x ಅನ್ನು ಏಪ್ರಿಲ್ 30, 2027 ರವರೆಗೆ ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ. Node.js 20.x ನ ಹಿಂದಿನ LTS ಶಾಖೆಯ ನಿರ್ವಹಣೆಯು ಏಪ್ರಿಲ್ 2026 ರವರೆಗೆ ಇರುತ್ತದೆ ಮತ್ತು ಕೊನೆಯ LTS ಶಾಖೆಯ ಹಿಂದಿನ ವರ್ಷ 18.x ಏಪ್ರಿಲ್ 2025 ರವರೆಗೆ ಇರುತ್ತದೆ. Node.js 21.x ನ ಸ್ಟೇಜಿಂಗ್ ಶಾಖೆಯನ್ನು ಜೂನ್ 1, 2024 ರಂದು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗುತ್ತದೆ.
ಮುಖ್ಯ ಸುಧಾರಣೆಗಳು:
- V8 ಎಂಜಿನ್ ಅನ್ನು ಆವೃತ್ತಿ 12.4 ಗೆ ನವೀಕರಿಸಲಾಗಿದೆ, ಇದನ್ನು Chromium 124 ರಲ್ಲಿ ಬಳಸಲಾಗಿದೆ. V21 8 ಎಂಜಿನ್ ಅನ್ನು ಬಳಸಿದ Node.js 11.8 ಶಾಖೆಗೆ ಹೋಲಿಸಿದರೆ ಬದಲಾವಣೆಗಳಲ್ಲಿ, ಇದನ್ನು ಗಮನಿಸಲಾಗಿದೆ:
- WasmGC ವಿಸ್ತರಣೆಗೆ ಬೆಂಬಲ, ಇದು WebAssembly ಗೆ ಕಸ ಸಂಗ್ರಾಹಕವನ್ನು (Kotlin, PHP, Java, ಇತ್ಯಾದಿ) ಬಳಸುವ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಬರೆಯಲಾದ ಕಾರ್ಯಕ್ರಮಗಳ ಪೋರ್ಟಿಂಗ್ ಅನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ. WasmGC ಹೊಸ ರೀತಿಯ ರಚನೆಗಳು ಮತ್ತು ರೇಖಾತ್ಮಕವಲ್ಲದ ಮೆಮೊರಿ ಹಂಚಿಕೆಯನ್ನು ಬಳಸಬಹುದಾದ ರಚನೆಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ.
- Array.fromAsync() ವಿಧಾನಕ್ಕೆ ಬೆಂಬಲ, ಇದು ಅರೇ-ರೀತಿಯ, ಪುನರಾವರ್ತನೀಯ ಅಥವಾ ಅಸಿಂಕ್ ಪುನರಾವರ್ತನೀಯ ವಸ್ತುವಿನಿಂದ ನಕಲಿಸಲಾದ ಅರೇ ವಸ್ತುವಿನ ಹೊಸ ನಿದರ್ಶನವನ್ನು ಅಸಮಕಾಲಿಕವಾಗಿ ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
- .map, .filter, .find, .take, .drop, .forEach ಮತ್ತು .reduce ನಂತಹ ಪುನರಾವರ್ತಕ ವಿಧಾನಗಳಿಗೆ ಬೆಂಬಲ.
- ಮೌಲ್ಯಗಳ ಸಂಗ್ರಹವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಸೆಟ್ ಆಬ್ಜೆಕ್ಟ್ಗೆ ಬೆಂಬಲ ಮತ್ತು ಛೇದಕ, ಒಕ್ಕೂಟ, ವ್ಯತ್ಯಾಸ ಮತ್ತು ಸೇರ್ಪಡೆಯಂತಹ ಸಾಮಾನ್ಯ ಸೆಟ್ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ವಿಧಾನಗಳನ್ನು ನೀಡುತ್ತದೆ.
- ಮ್ಯಾಗ್ಲೆವ್ ಆಪ್ಟಿಮೈಸಿಂಗ್ JIT ಕಂಪೈಲರ್ ಅನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ, ಹೆಚ್ಚು ಬಳಸಿದ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್ಗಾಗಿ ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯ ಯಂತ್ರ ಕೋಡ್ ಅನ್ನು ತ್ವರಿತವಾಗಿ ಉತ್ಪಾದಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಮ್ಯಾಗ್ಲೆವ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದರಿಂದ ದೀರ್ಘಕಾಲೀನ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸದ ಅಲ್ಪಾವಧಿಯ CLI ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಗಮನಾರ್ಹವಾಗಿ ವೇಗಗೊಳಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ, ಜೆಟ್ಸ್ಟ್ರೀಯಾ ಪರೀಕ್ಷೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸುವ ಸಮಯವು 7.5% ರಷ್ಟು ಕಡಿಮೆಯಾಗುತ್ತದೆ ಮತ್ತು ಸ್ಪೀಡೋಮೀಟರ್ ಪರೀಕ್ಷೆಯು 5% ರಷ್ಟು ಕಡಿಮೆಯಾಗುತ್ತದೆ.
- ಹೈವಾಟರ್ಮಾರ್ಕ್ ಆಯ್ಕೆಯ ಮೌಲ್ಯವನ್ನು 16 ಕೆಬಿಯಿಂದ 65 ಕೆಬಿಗೆ ಹೆಚ್ಚಿಸುವ ಮೂಲಕ ಸ್ಟ್ರೀಮ್ಗಳೊಂದಿಗಿನ ಕೆಲಸವನ್ನು ವೇಗಗೊಳಿಸಲಾಗಿದೆ (ರೆಕಾರ್ಡಿಂಗ್ ಅನ್ನು ಬಫರ್ ಮಾಡಲಾದ ಮಿತಿಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ). ಬದಲಾವಣೆಯು ಹೆಚ್ಚಿದ ಮೆಮೊರಿ ಬಳಕೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಸೀಮಿತ RAM ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಅಪ್ಲಿಕೇಶನ್ಗಳು setDefaultHighWaterMark() ಗೆ ಕರೆ ಮಾಡುವ ಮೂಲಕ ಹಳೆಯ ಮೌಲ್ಯಕ್ಕೆ ಹಿಂತಿರುಗಬೇಕಾಗಬಹುದು.
- AbortSignal ತತ್ಕ್ಷಣವನ್ನು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮಾಡುವ ಮೂಲಕ ಫೆಚ್() ಮತ್ತು ಟೆಸ್ಟ್ ರನ್ನರ್ API ಗಳ ಸುಧಾರಿತ ಕಾರ್ಯಕ್ಷಮತೆ. ಫೈಲ್ ಸಿಸ್ಟಮ್ಗಳೊಂದಿಗೆ ಸಿಂಕ್ರೊನಸ್ ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ API ಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲಾಗಿದೆ.
- ಸಿಂಕ್ರೊನಸ್ ಮೋಡ್ನಲ್ಲಿ JavaScript ESM ಮಾಡ್ಯೂಲ್ಗಳನ್ನು (ECMAScript ಮಾಡ್ಯೂಲ್ಗಳು) ಲೋಡ್ ಮಾಡಲು "require()" ಕರೆಯನ್ನು ಬಳಸಲು ಪ್ರಾಯೋಗಿಕ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಒದಗಿಸಲಾಗಿದೆ. ESM ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ಬ್ರೌಸರ್ಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು Node.js ಗೆ ನಿರ್ದಿಷ್ಟವಾದ CommonJS ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ. "require()" ಮೂಲಕ ಲೋಡ್ ಮಾಡಲು, ESM ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಸಿಂಕ್ರೊನಸ್ ಮೋಡ್ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕು (ಮೇಲ್ಮಟ್ಟದಲ್ಲಿ ಕಾಯದೆ). "--ಪ್ರಾಯೋಗಿಕ-ಅವಶ್ಯಕ-ಮಾಡ್ಯೂಲ್" ಫ್ಲ್ಯಾಗ್ ಮೂಲಕ ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.
- "--run" ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ಯಾಕೇಜ್.json ಫೈಲ್ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ಚಲಾಯಿಸಲು ಪ್ರಾಯೋಗಿಕ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ "
- "ನೋಡ್ -ವಾಚ್" ಆಜ್ಞೆಯನ್ನು ವಾಚ್ ಮೋಡ್ನ ಅನುಷ್ಠಾನದೊಂದಿಗೆ ಸ್ಥಿರ ವರ್ಗಕ್ಕೆ ಸರಿಸಲಾಗಿದೆ ಅದು ಆಮದು ಮಾಡಿದ ಫೈಲ್ ಬದಲಾದಾಗ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, "ನೋಡ್ -ವಾಚ್ ಇಂಡೆಕ್ಸ್.ಜೆಎಸ್" ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದರೆ, index.js ಬದಲಾದಾಗ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ).
- WebSocket API ಯ ಸ್ಥಳೀಯ ಅನುಷ್ಠಾನವನ್ನು ಸ್ಥಿರಗೊಳಿಸಲಾಗಿದೆ, ಹೆಚ್ಚುವರಿ ಅವಲಂಬನೆಗಳನ್ನು ಸ್ಥಾಪಿಸದೆಯೇ ಕ್ಲೈಂಟ್ ಮೋಡ್ನಲ್ಲಿ ವೆಬ್ಸಾಕೆಟ್ ಅನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ.
- ನ್ಯಾವಿಗೇಟರ್ API ಗೆ ಭಾಗಶಃ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
- Webstreams API ಡಿಫ್ಲೇಟ್-ರಾ ಕಂಪ್ರೆಷನ್ ಫಾರ್ಮ್ಯಾಟ್ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಿದೆ.
- ನೋಡ್ಗೆ ಗ್ಲೋಬ್ ಮತ್ತು ಗ್ಲೋಬ್ಸಿಂಕ್ ಕಾರ್ಯಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ: ಫೈಲ್ ಪಥಗಳ ಮಾದರಿ ಹೊಂದಾಣಿಕೆಗಾಗಿ fsmodule.
- ತಪ್ಪಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾದ IPv6 ಸ್ಟ್ಯಾಕ್ಗಳ ಸುಧಾರಿತ ನಿರ್ವಹಣೆ. IPv6 ಕಾರ್ಯಾಚರಣೆಯಲ್ಲಿ ಸಮಸ್ಯೆಗಳಿದ್ದಲ್ಲಿ ತ್ವರಿತ ರೋಲ್ಬ್ಯಾಕ್ಗಾಗಿ ಹ್ಯಾಪಿ ಐಬಾಲ್ಸ್ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ.
- Util API ಅನ್ನು ಅಸಮ್ಮತಿಸಲಾಗಿದೆ.
- ನವೀಕರಿಸಿದ ಅವಲಂಬನೆ ಆವೃತ್ತಿಗಳು: 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, 2.7.7. 6.6.0 ಮತ್ತು XNUMXdici.XNUMX. ada .
Node.js ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಅನ್ನು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಸರ್ವರ್-ಸೈಡ್ ಬೆಂಬಲಕ್ಕಾಗಿ ಮತ್ತು ಪ್ರಮಾಣಿತ ಕ್ಲೈಂಟ್- ಮತ್ತು ಸರ್ವರ್-ಸೈಡ್ ನೆಟ್ವರ್ಕ್ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ರಚಿಸಲು ಬಳಸಬಹುದು. Node.js ಅಪ್ಲಿಕೇಶನ್ಗಳ ಕಾರ್ಯವನ್ನು ವಿಸ್ತರಿಸಲು, ಕಾರ್ಯಗತಗೊಳಿಸುವಂತಹ ಮಾಡ್ಯೂಲ್ಗಳ ದೊಡ್ಡ ಸಂಗ್ರಹವನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ, ಸರ್ವರ್ಗಳು ಮತ್ತು HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, ವಿವಿಧ ವೆಬ್ ಫ್ರೇಮ್ವರ್ಕ್ಗಳೊಂದಿಗೆ ಏಕೀಕರಣಕ್ಕಾಗಿ ಮಾಡ್ಯೂಲ್ಗಳು, ವೆಬ್ಸಾಕೆಟ್ ಮತ್ತು ಅಜಾಕ್ಸ್ ಹ್ಯಾಂಡ್ಲರ್ಗಳು, DBMS (MySQL, PostgreSQL, SQLite, MongoDB) ಗೆ ಕನೆಕ್ಟರ್ಗಳು, ಟೆಂಪ್ಲೇಟ್ ಎಂಜಿನ್ಗಳು, CSS ಎಂಜಿನ್ಗಳು, ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಅಲ್ಗಾರಿದಮ್ಗಳು ಮತ್ತು ಅಧಿಕಾರ ವ್ಯವಸ್ಥೆಗಳ (OAuth), XML ಪಾರ್ಸರ್ಗಳ ಅನುಷ್ಠಾನಗಳು.
ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಸಮಾನಾಂತರ ವಿನಂತಿಗಳನ್ನು ನಿರ್ವಹಿಸಲು, Node.js ನಿರ್ಬಂಧಿಸದ ಈವೆಂಟ್ ಪ್ರಕ್ರಿಯೆ ಮತ್ತು ಕಾಲ್ಬ್ಯಾಕ್ ಹ್ಯಾಂಡ್ಲರ್ಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಆಧಾರದ ಮೇಲೆ ಅಸಮಕಾಲಿಕ ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಮಾದರಿಯನ್ನು ಬಳಸುತ್ತದೆ. ಮಲ್ಟಿಪ್ಲೆಕ್ಸಿಂಗ್ ಸಂಪರ್ಕಗಳಿಗೆ ಬೆಂಬಲಿತ ವಿಧಾನಗಳಲ್ಲಿ epoll, kqueue, /dev/poll, ಮತ್ತು ಆಯ್ಕೆ ಸೇರಿವೆ. ಸಂಪರ್ಕ ಮಲ್ಟಿಪ್ಲೆಕ್ಸಿಂಗ್ಗಾಗಿ, ಲಿಬುವ್ ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಇದು ಯುನಿಕ್ಸ್ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿ ಲಿಬೆವ್ಗೆ ಮತ್ತು ವಿಂಡೋಸ್ನಲ್ಲಿ ಐಒಸಿಪಿಗೆ ಆಡ್-ಆನ್ ಆಗಿದೆ. ಥ್ರೆಡ್ ಪೂಲ್ ರಚಿಸಲು libeio ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ತಡೆರಹಿತ ಕ್ರಮದಲ್ಲಿ DNS ಪ್ರಶ್ನೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು c-ares ಅನ್ನು ಸಂಯೋಜಿಸಲಾಗಿದೆ. ನಿರ್ಬಂಧಿಸುವಿಕೆಯನ್ನು ಉಂಟುಮಾಡುವ ಎಲ್ಲಾ ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಥ್ರೆಡ್ ಪೂಲ್ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಂತರ, ಸಿಗ್ನಲ್ ಹ್ಯಾಂಡ್ಲರ್ಗಳಂತೆ, ಹೆಸರಿಸದ ಪೈಪ್ ಮೂಲಕ ತಮ್ಮ ಕೆಲಸದ ಫಲಿತಾಂಶವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್ನ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು Google ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ V8 ಎಂಜಿನ್ನ ಬಳಕೆಯ ಮೂಲಕ ಖಾತ್ರಿಪಡಿಸಲಾಗಿದೆ (ಇದಲ್ಲದೆ, ಮೈಕ್ರೋಸಾಫ್ಟ್ ಚಕ್ರ-ಕೋರ್ ಎಂಜಿನ್ನೊಂದಿಗೆ Node.js ನ ಆವೃತ್ತಿಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ). ಅದರ ಮಧ್ಯಭಾಗದಲ್ಲಿ, Node.js ಪರ್ಲ್ ಎನಿಈವೆಂಟ್, ರೂಬಿ ಈವೆಂಟ್ ಮೆಷಿನ್, ಪೈಥಾನ್ ಟ್ವಿಸ್ಟೆಡ್ ಫ್ರೇಮ್ವರ್ಕ್ಗಳು ಮತ್ತು Tcl ನಲ್ಲಿ ಈವೆಂಟ್ಗಳ ಅನುಷ್ಠಾನವನ್ನು ಹೋಲುತ್ತದೆ, ಆದರೆ Node.js ನಲ್ಲಿನ ಈವೆಂಟ್ ಲೂಪ್ ಅನ್ನು ಡೆವಲಪರ್ನಿಂದ ಮರೆಮಾಡಲಾಗಿದೆ ಮತ್ತು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಈವೆಂಟ್ ಪ್ರಕ್ರಿಯೆಗೆ ಹೋಲುತ್ತದೆ. ಬ್ರೌಸರ್ನಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿದೆ.
ಮೂಲ: opennet.ru
