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

Состоялся релиз Node.js 19.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 19 отнесён к ветке с обычным сроком поддержки, обновления для которой будут выпускаться до июня 2023 года. В ближайшие дни будет завершена стабилизация ветки Node.js 18, которая получит статус LTS и будет поддерживаться до апреля 2025 года. Сопровождение прошлой LTS-ветки Node.js 16.0 продлится до сентября 2023 года, а позапрошлой LTS-ветки 14.0 до апреля 2023 года.

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

  • Движок V8 обновлён до версии 10.7, применяемой в Chromium 107. Из изменений в движке по сравнению с веткой Node.js 18 отмечается реализация третьей версии API Intl.NumberFormat, в которой добавлены новые функции formatRange(), formatRangeToParts() и selectRange(), группировка множеств, новые опции округления и задания точности, возможность интерпретации строк как десятичных чисел. Также обновлены входящие в комплект зависимости llhttp 8.1.0 и npm 8.19.2.
  • Предложена экспериментальная команда «node —watch» с реализацией режима наблюдения, обеспечивающего перезапуск процесса при изменении импортированного файла (например, в случае выполнения «node —watch index.js» процесс будет автоматически перезапущен при изменении index.js).
  • Для всех исходящих HTTP/HTTPS-соединений включена поддержка механизма HTTP 1.1 Keep-Alive, оставляющего соединение определённое время открытым для обработки в рамках одного соединения нескольких HTTP-запросов. Предполагается, что применение Keep-Alive позволит повысить пропускную способность и производительность. По умолчанию таймаут удержания соединения открытым выставлен в 5 секунд. В реализацию HTTP-клиента добавлена поддержка разбора HTTP-заголовка Keep-Alive в ответах сервера, а в реализацию HTTP-сервера Node.js добавлено автоматическое отсоединение неактивных клиентов, использующих Keep-Alive.
  • В разряд стабильных переведён API WebCrypto, за исключением функций, использующих алгоритмы Ed25519, Ed448, X25519 и X448. Для доступа к модулю WebCrypto теперь можно использовать globalThis.crypto или require(‘node:crypto’).webcrypto.
  • Удалена поддержка инструментариев трассировки DTrace, SystemTap и ETW (Event Tracing for Windows), поддержание которых признано нецелесообразным из-за сложности сопровождения в актуальном виде при отсутствии должного плана их поддержки.

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

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