Адрес: ул. Б. Очаковская 32 Москва Россия
Быстрый поиск
Наши официальные канал и чат в telegram
Поднимем Devuan на вершину Distrowatch! Просто перейдите по ссылке один раз в день.

Node.js 24.0.0: новая LTS-версия с улучшенным AsyncLocalStorage и URLPattern

Node.js, 24.0.0, LTS, AsyncLocalStorage, URLPattern, Permission Model, undici, V8, NPM, Float16Array, Memory64, RegExp.escap

Новости собранные из разных RSS источников
Ответить
Аватара пользователя
root:#
Site Admin
Сообщения: 237
Зарегистрирован: Вт ноя 08, 2022 3:27 pm
Благодарил (а): 39 раз
Поблагодарили: 22 раза

Node.js 24.0.0: новая LTS-версия с улучшенным AsyncLocalStorage и URLPattern

Сообщение root:# »

Node.js 24.0.0: новая LTS-версия с улучшенным AsyncLocalStorage и URLPattern
Состоялся релиз Node.js 24.0.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 24.0 отнесён к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js 24.x будет осуществляться до 30 апреля 2028 года. Сопровождение прошлой LTS-ветки Node.js 22.x продлится до апреля 2027 года, а позапрошлой LTS-ветки 20.x до апреля 2026 года. Сопровождение LTS-ветки 18.x прекращено 30 апреля 2025 года, промежуточной ветки Node.js 23.x будет прекращено 1 июня 2025 года.

Основные улучшения:
  • В API AsyncLocalStorage по умолчанию задействован класс AsyncContextFrame, который помечен стабильным. AsyncContextFrame реализует более эффективный механизм отслеживания асинхронного контекста, позволяющий заметно повысить производительность.
  • API URLPattern теперь доступен в виде глобального объекта, который можно использовать без явного импортирования. URLPattern предоставляет возможности для проверки соответствия URL определённому шаблону, что, например может применяться для разбора ссылок.
  • Улучшен и стабилизирован механизм Permission Model, позволяющий ограничить доступ к определённым ресурсам в процессе исполнения (например, можно запретить создание дочерних процессов, ограничить доступ на запись или чтение к определённым частям ФС, отключить дополнения). Вместо экспериментального флага "--experimental-permission" для включения Permission Model теперь можно использовать флаг "--permission".
  • Расширены возможности модуля node:test (test_runner), предназначенного для создания и запуска тестов на языке JavaScript, возвращающих результат в формате TAP (Test Anything Protocol). Модуль теперь автоматически ожидает завершения вложенных тестов без необходимости использования await.
  • HTTP-клиент undici обновлён до ветки 7.x, в которой повышена производительность и добавлена поддержка новых возможностей HTTP.
  • Движок V8 обновлён до версии 13.6, применяемой в Chromium 136. Из новых возможностей по сравнению с прошлым выпуском Node.js отмечена поддержка типизированных массивов Float16Array, ручного управления ресурсами, метода RegExp.escape (экранирование строк для RegExp), 64-разрядных указателей (Memory64) в WebAssembly, метода Error.isError.
  • Пакетный менеджер NPM обновлён до версии 11. Прекращена поддержка компилятора MSVC. Для компиляции на платформе Windows необходимо использовать ClangCL.
Платформа Node.js может быть использована как для серверного сопровождения работы Web-приложений, так и для создания обычных клиентских и серверных сетевых программ. Для расширения функциональности приложений для Node.js подготовлена большая коллекция модулей, в которой можно найти модули с реализацией серверов и клиентов HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, модули для интеграции с различными web-фреймворками, обработчики WebSocket и Ajax, коннекторы к СУБД (MySQL, PostgreSQL, SQLite, MongoDB), шаблонизаторы, CSS-движки, реализации криптоалгоритмов и систем авторизации (OAuth), XML-парсеры.

Для обработки большого числа параллельных запросов Node.js задействует асинхронную модель запуска кода, основанную на обработке событий в неблокирующем режиме и определении callback-обработчиков. В качестве способов мультиплексирования соединений поддерживаются такие методы, как epoll, kqueue, /dev/poll и select. Для мультиплексирования соединений используется библиотека libuv, которая является надстройкой над libev в системах Unix и над IOCP в Windows. Для создания пула потоков (thread pool) задействована библиотека libeio, для выполнения DNS-запросов в неблокирующем режиме интегрирован c-ares.

Все системные вызовы, вызывающие блокирование, выполняются внутри пула потоков и затем, как и обработчики сигналов, передают результат своей работы обратно через неименованный канал (pipe).
Выполнение JavaScript-кода обеспечивается через задействование разработанного компанией Google движка V8 (дополнительно Microsoft развивает вариант Node.js с движком Chakra-Core). По своей сути Node.js похож на фреймворки Perl AnyEvent, Ruby Event Machine, Python Twisted и реализацию событий в Tcl, но цикл обработки событий (event loop) в Node.js скрыт от разработчика и напоминает обработку событий в web-приложении, работающем в браузере.

Источник: https://www.opennet.ru/opennews/art.shtml?num=63194
Ответить