ಸರ್ವರ್-ಸೈಡ್ JavaScript Node.js 16.0 ಬಿಡುಗಡೆ

Node.js 16.0 ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲಾಗಿದೆ, ಇದು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ನೆಟ್‌ವರ್ಕ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಚಾಲನೆ ಮಾಡುವ ವೇದಿಕೆಯಾಗಿದೆ. Node.js 16.0 ಅನ್ನು ದೀರ್ಘಾವಧಿಯ ಬೆಂಬಲ ಶಾಖೆಯಾಗಿ ವರ್ಗೀಕರಿಸಲಾಗಿದೆ, ಆದರೆ ಸ್ಥಿರೀಕರಣದ ನಂತರ ಈ ಸ್ಥಿತಿಯನ್ನು ಅಕ್ಟೋಬರ್‌ನಲ್ಲಿ ಮಾತ್ರ ನಿಯೋಜಿಸಲಾಗುತ್ತದೆ. Node.js 16.0 ಅನ್ನು ಏಪ್ರಿಲ್ 2023 ರವರೆಗೆ ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ. Node.js 14.0 ನ ಹಿಂದಿನ LTS ಶಾಖೆಯ ನಿರ್ವಹಣೆಯು ಏಪ್ರಿಲ್ 2023 ರವರೆಗೆ ಇರುತ್ತದೆ ಮತ್ತು ಕೊನೆಯ LTS ಶಾಖೆಯ ಹಿಂದಿನ ವರ್ಷ 12.0 ಏಪ್ರಿಲ್ 2022 ರವರೆಗೆ ಇರುತ್ತದೆ. 10.0 LTS ಶಾಖೆಗೆ ಬೆಂಬಲವನ್ನು 10 ದಿನಗಳಲ್ಲಿ ಸ್ಥಗಿತಗೊಳಿಸಲಾಗುತ್ತದೆ.

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

  • V8 ಎಂಜಿನ್ ಅನ್ನು ಆವೃತ್ತಿ 9.0 (Node.js 15 ಬಳಸಲಾದ ಬಿಡುಗಡೆ 8.6) ಗೆ ನವೀಕರಿಸಲಾಗಿದೆ, ಇದು ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳಿಗಾಗಿ "ಸೂಚ್ಯಂಕಗಳು" ಗುಣಲಕ್ಷಣಗಳಂತಹ ವೈಶಿಷ್ಟ್ಯಗಳ ಅನುಷ್ಠಾನವನ್ನು ಅನುಮತಿಸುತ್ತದೆ (ಪಂದ್ಯಗಳ ಗುಂಪುಗಳ ಆರಂಭಿಕ ಮತ್ತು ಅಂತ್ಯದ ಸ್ಥಾನಗಳೊಂದಿಗೆ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಒಳಗೊಂಡಿದೆ) , Node.js 16 ರಲ್ಲಿ ಪರಮಾಣು ವಿಧಾನ .waitAsync (Atomics.wait ನ ಅಸಿಂಕ್ ಆವೃತ್ತಿ), ಉನ್ನತ ಮಟ್ಟದ ಮಾಡ್ಯೂಲ್‌ಗಳಲ್ಲಿ ನಿರೀಕ್ಷಿಸಿ ಕೀವರ್ಡ್ ಅನ್ನು ಬಳಸುವ ಬೆಂಬಲ. ರವಾನಿಸಲಾದ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳ ಸಂಖ್ಯೆಯು ಫಂಕ್ಷನ್‌ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ನಿಯತಾಂಕಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗದ ಸಂದರ್ಭಗಳಲ್ಲಿ ಫಂಕ್ಷನ್ ಕರೆಗಳನ್ನು ವೇಗಗೊಳಿಸಲಾಗಿದೆ.
  • ಟೈಮರ್ಸ್ ಪ್ರಾಮಿಸಸ್ API ಅನ್ನು ಸ್ಥಿರಗೊಳಿಸಲಾಗಿದೆ, ಪ್ರಾಮಿಸ್ ಆಬ್ಜೆಕ್ಟ್‌ಗಳನ್ನು ಔಟ್‌ಪುಟ್ ಆಗಿ ಹಿಂತಿರುಗಿಸುವ ಟೈಮರ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಪರ್ಯಾಯ ಕಾರ್ಯಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದು util.promisify() ಅನ್ನು ಬಳಸುವ ಅಗತ್ಯವನ್ನು ನಿವಾರಿಸುತ್ತದೆ. 'ಟೈಮರ್‌ಗಳು/ಭರವಸೆಗಳಿಂದ' {setTimeout} ಅನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಿ; ಅಸಿಂಕ್ ಫಂಕ್ಷನ್ ರನ್ () { ನಿರೀಕ್ಷಿಸಿ setTimeout (5000); console.log('ಹಲೋ, ವರ್ಲ್ಡ್!'); } ಓಡು();
  • ವೆಬ್ ಕ್ರಿಪ್ಟೋ API ಯ ಪ್ರಾಯೋಗಿಕ ಅನುಷ್ಠಾನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಬದಿಯಲ್ಲಿ ಮೂಲಭೂತ ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಉದಾಹರಣೆಗೆ ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಹ್ಯಾಶ್‌ಗಳನ್ನು ಮ್ಯಾನಿಪುಲೇಟ್ ಮಾಡುವುದು, ಡಿಜಿಟಲ್ ಸಿಗ್ನೇಚರ್‌ಗಳನ್ನು ರಚಿಸುವುದು ಮತ್ತು ಪರಿಶೀಲಿಸುವುದು, ವಿವಿಧ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ವಿಧಾನಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾವನ್ನು ಎನ್‌ಕೋಡಿಂಗ್ ಮತ್ತು ಡಿಕೋಡಿಂಗ್ ಮಾಡುವುದು ಮತ್ತು ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕವಾಗಿ ಸುರಕ್ಷಿತಗೊಳಿಸುವುದು. ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆಗಳು. API ಕೀಲಿಗಳನ್ನು ಉತ್ಪಾದಿಸುವ ಮತ್ತು ನಿರ್ವಹಿಸುವ ಕಾರ್ಯಗಳನ್ನು ಸಹ ಒದಗಿಸುತ್ತದೆ.
  • N-API (ಆಡ್-ಆನ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು API) ಅನ್ನು ಆವೃತ್ತಿ 8 ಕ್ಕೆ ನವೀಕರಿಸಲಾಗಿದೆ.
  • ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ NPM 7.10 ರ ಹೊಸ ಬಿಡುಗಡೆಗೆ ಪರಿವರ್ತನೆ ಮಾಡಲಾಗಿದೆ.
  • AbortController ವರ್ಗದ ಅನುಷ್ಠಾನವನ್ನು ಸ್ಥಿರಗೊಳಿಸಲಾಗಿದೆ, ಇದು AbortController ವೆಬ್ API ಅನ್ನು ಆಧರಿಸಿದೆ ಮತ್ತು ಆಯ್ದ ಪ್ರಾಮಿಸ್-ಆಧಾರಿತ API ಗಳಲ್ಲಿ ಸಂಕೇತಗಳನ್ನು ರದ್ದುಗೊಳಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.
  • ಮೂಲ ನಕ್ಷೆಯ ಸ್ವರೂಪದ ಮೂರನೇ ಆವೃತ್ತಿಗೆ ಬೆಂಬಲವನ್ನು ಮೂಲ ಮೂಲ ಕೋಡ್‌ನೊಂದಿಗೆ ಉತ್ಪಾದಿಸಿದ, ಸಂಸ್ಕರಿಸಿದ ಅಥವಾ ಪ್ಯಾಕೇಜ್ ಮಾಡಲಾದ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಹೋಲಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ, ಇದನ್ನು ಸ್ಥಿರಗೊಳಿಸಲಾಗಿದೆ.
  • ಲೆಗಸಿ ವೆಬ್ APIಗಳೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಗಾಗಿ, buffer.atob(data) ಮತ್ತು buffer.btoa(data) ವಿಧಾನಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • M1 ARM ಚಿಪ್ ಹೊಂದಿದ ಹೊಸ Apple ಸಾಧನಗಳಿಗೆ ಅಸೆಂಬ್ಲಿಗಳ ರಚನೆಯು ಪ್ರಾರಂಭವಾಗಿದೆ.
  • Linux ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನಲ್ಲಿ, ಕಂಪೈಲರ್ ಆವೃತ್ತಿಯ ಅವಶ್ಯಕತೆಗಳನ್ನು GCC 8.3 ಗೆ ಹೆಚ್ಚಿಸಲಾಗಿದೆ.

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("ಆಯ್ಕೆ..", ಫಂಕ್ಷನ್ (ಫಲಿತಾಂಶ) {ಫಲಿತಾಂಶ ಸಂಸ್ಕರಣೆ});" ಆಗಿ ಮಾರ್ಪಡಿಸಲಾಗಿದೆ, ಇದರಲ್ಲಿ ನಿಯಂತ್ರಣವು ತಕ್ಷಣವೇ ಮುಂದಿನ ಕೋಡ್‌ಗೆ ಹಾದುಹೋಗುತ್ತದೆ ಮತ್ತು ಡೇಟಾ ಬಂದಂತೆ ಪ್ರಶ್ನೆಯ ಫಲಿತಾಂಶವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತದೆ.

ಹೆಚ್ಚುವರಿಯಾಗಿ, ಮುಂದಿನ ಪೀಳಿಗೆಯ ಡೆನೋ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು Node.js ನ ಸೃಷ್ಟಿಕರ್ತರಿಂದ ಸ್ಥಾಪಿಸಲ್ಪಟ್ಟ ಡೆನೋ ಕಂಪನಿಯು $ 4.9 ಮಿಲಿಯನ್ ಹೂಡಿಕೆಗಳನ್ನು ಸ್ವೀಕರಿಸಿದೆ ಎಂದು ಗಮನಿಸಬಹುದು. ಅದರ ಉದ್ದೇಶದಲ್ಲಿ, Deno Node.js ಅನ್ನು ಹೋಲುತ್ತದೆ, ಆದರೆ ಇದು Node.js ಆರ್ಕಿಟೆಕ್ಚರ್‌ನಲ್ಲಿ ಮಾಡಿದ ಪರಿಕಲ್ಪನಾ ದೋಷಗಳನ್ನು ತೊಡೆದುಹಾಕಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ ಹೆಚ್ಚು ಸುರಕ್ಷಿತ ವಾತಾವರಣವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಡೆನೊದ ವ್ಯಾಪಾರ ಪರಿಹಾರಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ತೆರೆದ ಉತ್ಪನ್ನಗಳ ಮೇಲೆ ನಿರ್ಮಿಸಲಾಗುವುದು ಮತ್ತು ಪ್ರತ್ಯೇಕ ಪಾವತಿಸಿದ ಕಾರ್ಯವನ್ನು ಹೊಂದಿರುವ ಓಪನ್ ಕೋರ್ ಮಾದರಿಯನ್ನು ಡೆನೊ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗೆ ಸ್ವೀಕಾರಾರ್ಹವಲ್ಲ ಎಂದು ಗ್ರಹಿಸಲಾಗಿದೆ.

ಮೂಲ: opennet.ru

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