ಸರ್ವರ್-ಸೈಡ್ JavaScript ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ Node.js 20.0 ಲಭ್ಯವಿದೆ

JavaScript ನಲ್ಲಿ ನೆಟ್‌ವರ್ಕ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ವೇದಿಕೆಯಾದ Node.js 20.0 ಬಿಡುಗಡೆಯಾಗಿದೆ. Node.js 20.0 ಅನ್ನು ದೀರ್ಘ ಬೆಂಬಲ ಶಾಖೆಗೆ ನಿಯೋಜಿಸಲಾಗಿದೆ, ಆದರೆ ಸ್ಥಿರೀಕರಣದ ನಂತರ ಅಕ್ಟೋಬರ್‌ವರೆಗೆ ಈ ಸ್ಥಿತಿಯನ್ನು ನಿಯೋಜಿಸಲಾಗುವುದಿಲ್ಲ. Node.js 20.x ಅನ್ನು ಏಪ್ರಿಲ್ 30, 2026 ರವರೆಗೆ ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ. ಹಿಂದಿನ Node.js 18.x LTS ಶಾಖೆಯ ನಿರ್ವಹಣೆಯು ಏಪ್ರಿಲ್ 2025 ರವರೆಗೆ ಮತ್ತು ಹಿಂದಿನ 16.x LTS ಶಾಖೆಯು ಸೆಪ್ಟೆಂಬರ್ 2023 ರವರೆಗೆ ಇರುತ್ತದೆ. 14.x LTS ಶಾಖೆಯನ್ನು ಏಪ್ರಿಲ್ 30 ರಂದು ಮತ್ತು Node.js 19.x ಮಧ್ಯಂತರ ಶಾಖೆಯನ್ನು ಜೂನ್ 1 ರಂದು ಉಳಿಸಿಕೊಳ್ಳಲಾಗುವುದು.

ಮುಖ್ಯ ಸುಧಾರಣೆಗಳು:

  • V8 ಎಂಜಿನ್ ಅನ್ನು ಆವೃತ್ತಿ 11.3 ಗೆ ನವೀಕರಿಸಲಾಗಿದೆ, ಇದನ್ನು Chromium 113 ರಲ್ಲಿ ಬಳಸಲಾಗಿದೆ. Chromium 19 ಎಂಜಿನ್ ಅನ್ನು ಬಳಸಿರುವ Node.js 107 ಶಾಖೆಗೆ ಹೋಲಿಸಿದರೆ ಬದಲಾವಣೆಗಳಲ್ಲಿ, String.prototype.isWellFormed ಮತ್ತು toWellFormed ಕಾರ್ಯಗಳು, Array.prototype ಮತ್ತು TypedArray.prototype ವಿಧಾನಗಳು Array ಮತ್ತು TypedArray ಆಬ್ಜೆಕ್ಟ್‌ಗಳ ಬದಲಾವಣೆಯ ನಕಲು, RegExp ನಲ್ಲಿ "v" ಫ್ಲ್ಯಾಗ್, ArrayBuffer ಅನ್ನು ಮರುಗಾತ್ರಗೊಳಿಸಲು ಮತ್ತು SharedArrayBuffer ನ ಗಾತ್ರವನ್ನು ಹೆಚ್ಚಿಸಲು ಬೆಂಬಲ, WebAssembly ನಲ್ಲಿ ಟೈಲ್-ಕಾಲ್.
  • ಪ್ರಾಯೋಗಿಕ ಅನುಮತಿ ಮಾದರಿ ಕಾರ್ಯವಿಧಾನವನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ ಅದು ಕಾರ್ಯಗತಗೊಳಿಸುವಾಗ ಕೆಲವು ಸಂಪನ್ಮೂಲಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಚಾಲನೆಯಲ್ಲಿರುವಾಗ "--ಪ್ರಾಯೋಗಿಕ-ಅನುಮತಿ" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಮೂಲಕ ಅನುಮತಿ ಮಾದರಿ ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ. ಆರಂಭಿಕ ಅನುಷ್ಠಾನದಲ್ಲಿ, FS, ಮಕ್ಕಳ ಪ್ರಕ್ರಿಯೆಗಳು (--ಅನುಮತಿ-ಮಗು-ಪ್ರಕ್ರಿಯೆ) ನ ಕೆಲವು ಭಾಗಗಳಿಗೆ ಬರೆಯಲು (--ಅನುಮತಿ-ಎಫ್ಎಸ್-ಬರೆಯಲು) ಮತ್ತು ಓದಲು (-ಅನುಮತಿ-ಎಫ್ಎಸ್-ಓದಲು) ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸಲು ಆಯ್ಕೆಗಳನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ. , ಆಡ್-ಆನ್‌ಗಳು (--ನೋ-ಆಡ್‌ಆನ್‌ಗಳು) ಮತ್ತು ಥ್ರೆಡ್‌ಗಳು (--ಅನುಮತಿ-ಕಾರ್ಮಿಕ). ಉದಾಹರಣೆಗೆ, /tmp ಡೈರೆಕ್ಟರಿಗೆ ಬರೆಯಲು ಮತ್ತು /home/index.js ಫೈಲ್ ಅನ್ನು ಓದಲು ಅನುಮತಿಸಲು, ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು: ನೋಡ್ --ಪ್ರಾಯೋಗಿಕ-ಅನುಮತಿ --allow-fs-write=/tmp/ --allow-fs-read =/home/index.js ಸೂಚ್ಯಂಕ .js

    ಪ್ರವೇಶವನ್ನು ಪರಿಶೀಲಿಸಲು, process.permission.has() ವಿಧಾನವನ್ನು ಬಳಸಲು ಸೂಚಿಸಲಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, "process.permission.has('fs.write',"/tmp/test").

  • "--ಪ್ರಾಯೋಗಿಕ-ಲೋಡರ್" ಆಯ್ಕೆಯ ಮೂಲಕ ಲೋಡ್ ಮಾಡಲಾದ ECMAScript ಬಾಹ್ಯ ಮಾಡ್ಯೂಲ್‌ಗಳ (ESMs) ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ಈಗ ಪ್ರತ್ಯೇಕ ಥ್ರೆಡ್‌ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ, ಮುಖ್ಯ ಥ್ರೆಡ್‌ನಿಂದ ಪ್ರತ್ಯೇಕಿಸಲಾಗಿದೆ, ಇದು ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ ಮತ್ತು ಲೋಡ್ ಮಾಡಲಾದ ESM ಮಾಡ್ಯೂಲ್‌ಗಳ ಛೇದಕವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಬ್ರೌಸರ್‌ಗಳಂತೆಯೇ, import.meta.resolve() ವಿಧಾನವು ಈಗ ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ಕರೆ ಮಾಡಿದಾಗ ಸಿಂಕ್ರೊನಸ್ ಆಗಿ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ. Node.js ನ ಮುಂದಿನ ಶಾಖೆಗಳಲ್ಲಿ ಒಂದರಲ್ಲಿ, ESM ಲೋಡಿಂಗ್ ಬೆಂಬಲವನ್ನು ಸ್ಥಿರ ವೈಶಿಷ್ಟ್ಯಗಳ ವರ್ಗಕ್ಕೆ ಸರಿಸಲು ಯೋಜಿಸಲಾಗಿದೆ.
  • ನೋಡ್:ಪರೀಕ್ಷೆ (ಪರೀಕ್ಷೆ_ರನ್ನರ್) ಮಾಡ್ಯೂಲ್, ಟ್ಯಾಪ್ (ಟೆಸ್ಟ್ ಎನಿಥಿಂಗ್ ಪ್ರೊಟೊಕಾಲ್) ಫಾರ್ಮ್ಯಾಟ್‌ನಲ್ಲಿ ಫಲಿತಾಂಶಗಳನ್ನು ನೀಡುವ JavaScript ಪರೀಕ್ಷೆಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಚಲಾಯಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಇದನ್ನು ಸ್ಥಿರಕ್ಕೆ ಸರಿಸಲಾಗಿದೆ.
  • ಪ್ರತ್ಯೇಕ ಕಾರ್ಯಕ್ಷಮತೆ ತಂಡವನ್ನು ರಚಿಸಲಾಗಿದೆ, ಇದು ಹೊಸ ಶಾಖೆಯ ತಯಾರಿಯಲ್ಲಿ, URL ಪಾರ್ಸಿಂಗ್, ಫೆಚ್() ಮತ್ತು EventTarget ಸೇರಿದಂತೆ ವಿವಿಧ ರನ್‌ಟೈಮ್ ಘಟಕಗಳನ್ನು ವೇಗಗೊಳಿಸಲು ಕೆಲಸ ಮಾಡಿದೆ. ಉದಾಹರಣೆಗೆ, EventTarget ಅನ್ನು ಪ್ರಾರಂಭಿಸುವ ಓವರ್‌ಹೆಡ್ ಅನ್ನು ಅರ್ಧಕ್ಕೆ ಇಳಿಸಲಾಗಿದೆ, URL.canParse() ವಿಧಾನದ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಲಾಗಿದೆ ಮತ್ತು ಟೈಮರ್‌ಗಳ ದಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸಲಾಗಿದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಉನ್ನತ-ಕಾರ್ಯಕ್ಷಮತೆಯ URL ಪಾರ್ಸರ್ ಬಿಡುಗಡೆ - ಅದಾ 2.0, ಸಿ ++ ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ, ಸಂಯೋಜನೆಯಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ.
  • ಒಂದೇ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ ಫೈಲ್ (SEA, ಸಿಂಗಲ್ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು) ರೂಪದಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ತಲುಪಿಸಲು ಪ್ರಾಯೋಗಿಕ ವೈಶಿಷ್ಟ್ಯದ ಅಭಿವೃದ್ಧಿ ಮುಂದುವರೆದಿದೆ. ಈಗ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ ಅನ್ನು ರಚಿಸಲು JSON ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ನಿಂದ ರಚಿಸಲಾದ ಬ್ಲಬ್ ಅನ್ನು ಬದಲಿಸುವ ಅಗತ್ಯವಿದೆ (ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಫೈಲ್ ಅನ್ನು ಬದಲಿಸುವ ಬದಲು).
  • ಇತರ ಯೋಜನೆಗಳ ಅನುಷ್ಠಾನಗಳೊಂದಿಗೆ ಸುಧಾರಿತ ವೆಬ್ ಕ್ರಿಪ್ಟೋ API ಹೊಂದಾಣಿಕೆ.
  • ARM64 ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ವಿಂಡೋಸ್‌ಗೆ ಅಧಿಕೃತ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • ಸ್ವತಂತ್ರ ವೆಬ್‌ಅಸೆಂಬ್ಲಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ರಚಿಸಲು WASI (ವೆಬ್‌ಅಸೆಂಬ್ಲಿ ಸಿಸ್ಟಮ್ ಇಂಟರ್ಫೇಸ್) ವಿಸ್ತರಣೆಗಳಿಗೆ ಮುಂದುವರಿದ ಬೆಂಬಲ. WASI ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ವಿಶೇಷ ಆಜ್ಞಾ ಸಾಲಿನ ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಅಗತ್ಯವನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ.

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, ಮತ್ತು ಆಯ್ಕೆ. ಸಂಪರ್ಕ ಮಲ್ಟಿಪ್ಲೆಕ್ಸಿಂಗ್‌ಗಾಗಿ, libuv ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಇದು Unix ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ libev ಮತ್ತು Windows ನಲ್ಲಿ IOCP ಗಾಗಿ ಆಡ್-ಆನ್ ಆಗಿದೆ. ಥ್ರೆಡ್ ಪೂಲ್ ರಚಿಸಲು libeio ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಮತ್ತು ತಡೆರಹಿತ ಕ್ರಮದಲ್ಲಿ DNS ಪ್ರಶ್ನೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು c-ares ಅನ್ನು ಸಂಯೋಜಿಸಲಾಗಿದೆ. ನಿರ್ಬಂಧಿಸುವಿಕೆಯನ್ನು ಉಂಟುಮಾಡುವ ಎಲ್ಲಾ ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಥ್ರೆಡ್ ಪೂಲ್ ಒಳಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಂತರ, ಸಿಗ್ನಲ್ ಹ್ಯಾಂಡ್ಲರ್ಗಳಂತೆ, ಹೆಸರಿಸದ ಪೈಪ್ (ಪೈಪ್) ಮೂಲಕ ತಮ್ಮ ಕೆಲಸದ ಫಲಿತಾಂಶವನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್‌ನ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು Google ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ V8 ಎಂಜಿನ್‌ನ ಬಳಕೆಯ ಮೂಲಕ ಒದಗಿಸಲಾಗಿದೆ (ಇದಲ್ಲದೆ, ಚಕ್ರ-ಕೋರ್ ಎಂಜಿನ್‌ನೊಂದಿಗೆ ಮೈಕ್ರೋಸಾಫ್ಟ್ Node.js ನ ಆವೃತ್ತಿಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ).

ಅದರ ಮಧ್ಯಭಾಗದಲ್ಲಿ, Node.js Perl AnyEvent, Ruby Event Machine, ಪೈಥಾನ್ ಟ್ವಿಸ್ಟೆಡ್ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳು ಮತ್ತು Tcl ಈವೆಂಟ್ ಅನುಷ್ಠಾನಕ್ಕೆ ಹೋಲುತ್ತದೆ, ಆದರೆ Node.js ನಲ್ಲಿನ ಈವೆಂಟ್ ಲೂಪ್ ಅನ್ನು ಡೆವಲಪರ್‌ನಿಂದ ಮರೆಮಾಡಲಾಗಿದೆ ಮತ್ತು ಚಾಲನೆಯಲ್ಲಿರುವ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಈವೆಂಟ್ ನಿರ್ವಹಣೆಯನ್ನು ಹೋಲುತ್ತದೆ. ಬ್ರೌಸರ್‌ನಲ್ಲಿ. node.js ಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಬರೆಯುವಾಗ, ನೀವು ಈವೆಂಟ್-ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್‌ನ ನಿಶ್ಚಿತಗಳನ್ನು ಪರಿಗಣಿಸಬೇಕು, ಉದಾಹರಣೆಗೆ, "var result = db.query("select..");" ಕೆಲಸದ ಪೂರ್ಣಗೊಳ್ಳುವಿಕೆ ಮತ್ತು ಫಲಿತಾಂಶಗಳ ನಂತರದ ಪ್ರಕ್ರಿಯೆಗಾಗಿ ಕಾಯುತ್ತಿರುವಾಗ, Node.js ಅಸಮಕಾಲಿಕ ಮರಣದಂಡನೆಯ ತತ್ವವನ್ನು ಬಳಸುತ್ತದೆ, ಅಂದರೆ. ಕೋಡ್ ಅನ್ನು "db.query("ಆಯ್ಕೆ..", ಫಂಕ್ಷನ್ (ಫಲಿತಾಂಶ) {ಫಲಿತಾಂಶ ಸಂಸ್ಕರಣೆ});" ಆಗಿ ಮಾರ್ಪಡಿಸಲಾಗಿದೆ, ಇದರಲ್ಲಿ ನಿಯಂತ್ರಣವು ತಕ್ಷಣವೇ ಮುಂದಿನ ಕೋಡ್‌ಗೆ ಹಾದುಹೋಗುತ್ತದೆ ಮತ್ತು ಡೇಟಾ ಬಂದಂತೆ ಪ್ರಶ್ನೆಯ ಫಲಿತಾಂಶವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ