Node.js 24.0.0: нова версія з довгостроковою підтримкою

Node.js 24.0.0: нова версія з довгостроковою підтримкою

Відбувся реліз Node.js 24.0.0, платформи для виконання мережевих застосунків на мові JavaScript. Node.js 24.0 віднесено до гілок з довгостроковим терміном підтримки, але цей статус буде присвоєно тільки в жовтні, після завершення стабілізації. Підтримка Node.js 24.x здійснюватиметься до 30 квітня 2028 року.

Графік підтримки версій Node.js

Супровід попередньої LTS-гілки Node.js 22.x триватиме до квітня 2027 року, а LTS-гілки 20.x – до квітня 2026 року. Супровід LTS-гілки 18.x припинено 30 квітня 2025 року, а проміжної гілки Node.js 23.x буде припинено 1 червня 2025 року.

Основні покращення в Node.js 24.0.0

  • В API AsyncLocalStorage за замовчуванням задіяно клас AsyncContextFrame, який позначено стабільним. AsyncContextFrame реалізує ефективніший механізм відстеження асинхронного контексту, що помітно підвищує продуктивність.
  • API URLPattern тепер доступний як глобальний об’єкт, який можна використовувати без явного імпортування. URLPattern надає можливості для перевірки відповідності URL певному шаблону, що може застосовуватися для розбору посилань.
  • Удосконалено та стабілізовано механізм Permission Model, що дозволяє обмежити доступ до певних ресурсів у процесі виконання. Замість експериментального прапорця “–experimental-permission” тепер можна використовувати прапорець “–permission”.
  • Розширено можливості модуля node:test (test_runner), призначеного для створення та запуску тестів на мові JavaScript. Модуль тепер автоматично очікує завершення вкладених тестів без необхідності використання await.
  • HTTP-клієнт undici оновлено до гілки 7.x, в якій підвищено продуктивність і додано підтримку нових можливостей HTTP.
  • Рушій V8 оновлено до версії 13.6, що застосовується в Chromium 136. Додано підтримку типізованих масивів Float16Array, ручного керування ресурсами, методу RegExp.escape та інші покращення.
  • Пакетний менеджер NPM оновлено до версії 11.
  • Припинено підтримку компілятора MSVC. Для компіляції на платформі Windows потрібно використовувати ClangCL.

Можливості та застосування Node.js

Платформа Node.js може використовуватися як для серверного супроводу роботи Web-застосунків, так і для створення звичайних клієнтських та серверних мережевих програм. Для розширення функціональності застосунків для Node.js підготовлена велика колекція модулів.

У цій колекції можна знайти модулі з реалізацією серверів і клієнтів HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, модулі для інтеграції з різними web-фреймворками, обробники WebSocket і Ajax, конектори до СУБД, шаблонізатори, CSS-рушії та багато іншого.

Архітектура та особливості роботи Node.js

Для обробки великої кількості паралельних запитів Node.js використовує асинхронну модель запуску коду. Вона базується на обробці подій у неблокуючому режимі та визначенні callback-обробників. В якості методів мультиплексування з’єднань підтримуються epoll, kqueue, /dev/poll і select.

Для мультиплексування з’єднань використовується бібліотека libuv. Виконання JavaScript-коду забезпечується через використання розробленого компанією Google рушія V8. Крім того, Microsoft розвиває варіант Node.js з рушієм Chakra-Core.

За своєю суттю Node.js схожий на фреймворки Perl AnyEvent, Ruby Event Machine, Python Twisted та реалізацію подій у Tcl. Однак цикл обробки подій у Node.js прихований від розробника і нагадує обробку подій у web-застосунку, що працює в браузері.

Детальніше про новий реліз можна дізнатися на офіційному сайті Node.js та у блозі з анонсом версії 24.0.0.