Рекомендуем
VPS на Windows и Linux — от 49 ₽ за 7 дней Быстрый запуск сервера на NVMe для сайтов, ботов и других задач.
Выбрать VPS

Web Workers пришли в Node.js 26.9.0 — вместе с node:bench и новым криптографическим API

Node.js 26.9.0 опубликован 16 сентября 2026 года в ветке Current. Релиз добавил поддержку Web Workers, встроенный модуль node:bench, включил node:ffi по умолчанию в сборках с FFI и расширил криптографические, сетевые и файловые API. Платформа получает больше возможностей, которые раньше требовали отдельных библиотек, специальных обвязок или нестандартных решений.

Web Workers пришли в Node.js 26.9.0
Web Workers пришли в Node.js 26.9.0

Web Workers переносят знакомую браузерную модель параллельного выполнения в Node.js

Самая заметная часть Node.js 26.9.0 — поддержка Web Workers. Команда Node.js реализовала API, определённый HTML Standard, поверх существующей инфраструктуры worker_threads. В результате серверный JavaScript получает ещё один способ запускать изолированную работу в отдельном потоке с моделью, знакомой разработчикам браузерных приложений.

В официальном pull request разработчики уточняют, что реализация следует веб-стандарту настолько близко, насколько позволяет архитектура Node.js. При этом среда остаётся серверной: у неё нет document, а относительные URL на главном потоке разрешаются от текущего рабочего каталога. Для файловых workers код проходит через загрузчики CommonJS и ESM.

Функция пока относится к экспериментальным. Это особенно заметно по списку различий с браузерами: часть событий WorkerGlobalScope отсутствует, а обработка ошибок опирается на внутреннюю модель worker_threads.

Для проектов, которые одновременно работают с браузерным и серверным JavaScript, это сокращает разрыв между двумя средами. Один и тот же подход к Worker API становится применим в большем числе сценариев, хотя поведение Node.js всё ещё имеет собственные ограничения.

Официальные изменения перечислены в release notes Node.js 26.9.0.

node:ffi теперь доступен по умолчанию в сборках с поддержкой FFI

В Node.js 26.9.0 модуль node:ffi включён по умолчанию там, где сама сборка Node.js содержит поддержку FFI. FFI, или Foreign Function Interface, позволяет JavaScript-коду обращаться к функциям нативных библиотек без отдельного Node-API-аддона для каждого вызова.

Раньше модуль требовал экспериментального флага. Теперь --experimental-ffi сохранён как совместимый пустой флаг, а отключение выполняется через --no-experimental-ffi. Статус самого API при этом остаётся экспериментальным, и Node.js продолжает выводить предупреждение при первом подключении модуля.

Изменение делает FFI заметно ближе к повседневной среде выполнения. У разработчика появляется прямой путь к системным библиотекам, C API и нативным компонентам, когда такой интерфейс уже доступен в операционной системе или стороннем пакете.

Экспериментальный статус здесь имеет практическое значение: форма API и детали поведения ещё могут меняться до стабилизации.

Встроенный node:bench даёт Node.js собственный каркас для микробенчмарков

Ещё одно крупное добавление — экспериментальный модуль node:bench. Его архитектура построена по образцу node:test: в платформе появляется собственный минимальный каркас для измерения производительности и CLI-режим node --bench.

Авторы описывают node:bench как базовый набор примитивов, на котором смогут работать встроенные инструменты Node.js и более специализированные решения. В модуле уже предусмотрены bench, suite, отдельный runner и репортёры.

Параллельно perf_hooks получил API Histogram.meanCI для расчёта доверительного интервала среднего значения. Гистограммы также можно экспортировать и импортировать через CBOR — компактный бинарный формат сериализации. Вместе эти изменения делают измерения производительности более воспроизводимыми и удобными для автоматизированной обработки.

Для экосистемы Node.js здесь появляется единая точка отсчёта. Простые тесты скорости можно описывать средствами самой платформы, а внешние инструменты получают встроенные примитивы, на которых можно строить более сложные сценарии.

Crypto получил универсальный MAC API и поддержку алгоритмов OpenSSL providers

Криптографический модуль в Node.js 26.9.0 расширился новым универсальным MAC API. MAC, или код аутентификации сообщения, используется для проверки целостности данных и подтверждения того, что сообщение сформировано стороной, владеющей секретным ключом.

Новые функции createMac() и getMacs() работают поверх OpenSSL EVP_MAC. Через единый интерфейс доступны несколько классов алгоритмов, включая HMAC, CMAC, GMAC, Poly1305, SipHash и KMAC — конкретный набор зависит от доступных OpenSSL providers.

Node.js также научился обнаруживать шифры и хеши, предоставляемые подключёнными OpenSSL providers. Для окружений с собственными криптографическими провайдерами это расширяет набор алгоритмов, который рантайм способен видеть через стандартный node:crypto.

В том же релизе есть исправления для RSA, ECDH, JWK и FIPS-режима. Они дополняют новую функциональность и показывают, что криптографический слой в ветке 26.x сейчас развивается сразу по нескольким направлениям.

VFS подключился к CommonJS и ESM, а DTLS появился как экспериментальный сетевой API

Виртуальная файловая система Node.js теперь интегрирована с загрузчиками CommonJS и ESM. При активном экспериментальном VFS модули могут разрешаться и загружаться из смонтированного виртуального пространства через привычные механизмы require и import.

Интеграция охватывает чтение файлов, определение формата модулей, работу с package.json, разрешение путей и очистку кэшей после размонтирования. Тесты этой подсистемы по-прежнему запускаются с --experimental-vfs, поэтому VFS остаётся частью активно развивающегося API.

В сетевом стеке появился экспериментальный DTLS API. DTLS переносит свойства TLS на датаграммы и работает поверх UDP; такой транспорт встречается, например, в WebRTC и CoAP. Реализация Node.js опирается на встроенную поддержку DTLS в OpenSSL. Авторы прямо указывают, что текущий вариант предназначен для экспериментов и обратной связи и пока не рассматривается как готовый производственный API.

Node.js 26.9.0 одновременно расширяет несколько низкоуровневых областей: загрузку модулей, доступ к нативному коду, криптографию и защищённые UDP-соединения. Это делает ветку Current площадкой, где будущие системные возможности Node.js проходят обкатку до перехода в более стабильную фазу.

Node.js 26 остаётся Current до запланированного перехода в LTS

На 17 сентября 2026 года Node.js 26.9.0 — актуальный релиз ветки Current. По официальному графику Release Working Group, серия 26.x должна перейти в Active LTS 28 октября 2026 года.

До этой даты ветка Current продолжает получать функциональные изменения, включая экспериментальные API. Именно поэтому в 26.9.0 рядом с уже доступным по умолчанию node:ffi находятся node:bench, VFS и DTLS, которым ещё предстоит пройти дальнейшую проверку интерфейсов и совместимости.

Релиз 26.9.0 показывает направление подготовки Node.js 26 к LTS: платформа расширяет совместимость с веб-стандартами, усиливает встроенные инструменты измерения и открывает больше низкоуровневых возможностей. Вопрос к октябрю остаётся конкретным: какие из нынешних экспериментальных интерфейсов успеют закрепить API и поведение до начала LTS-фазы.

При использовании материалов сайта необходимо указывать ссылку на TGLand.ru. Если вы копируете фрагменты текста в интернете, прямая гиперссылка, доступная для индексации поисковыми системами, должна быть размещена в начале материала.

Вам также может понравиться