14 октября 2026 года вышел Node.js 24.22.0 LTS: в поддерживаемую ветку добавили обработку сертификатов PKCS#12, новые криптографические функции и инструменты управления частотой вызовов. В тот же день Node.js 26.12.0 получил низкоуровневые операции для WebSocket. Разбираемся, какие изменения затрагивают серверные приложения и почему состав обновлений различается.

Сертификаты PKCS#12 теперь можно разбирать средствами Node.js 24
В Node.js 24.22.0 появился метод crypto.parsePKCS12(). Он читает контейнеры сертификатов форматов .p12 и .pfx и возвращает закрытый ключ, связанный с ним сертификат и дополнительные сертификаты цепочки, если они есть. Такие файлы используют, например, при настройке взаимной TLS-аутентификации, когда клиент подтверждает свою личность сертификатом.
Раньше этот API появился в экспериментально развивавшейся ветке 26.x — в версии 26.10.0 от 22 сентября. Теперь он доступен и приложениям на Node.js 24 LTS. Для проектов, которые остаются на поддерживаемой ветке 24.x, разбор PKCS#12 стал возможен без перехода на следующую основную версию среды.
Криптографический модуль получил и другие дополнения. Универсальный API crypto.createMac() предназначен для вычисления кодов аутентификации сообщений (MAC) с помощью алгоритмов, предоставляемых OpenSSL. Эти коды позволяют проверять целостность и подлинность данных при наличии общего секретного ключа. Перечень доступных алгоритмов зависит от подключённых провайдеров OpenSSL; механизмы их обнаружения также расширены. В API шифрования добавлена поддержка режимов SIV и GCM-SIV при наличии соответствующих реализаций.
util.debounce и util.throttle помогают управлять частотой вызовов
В модуле node:util появились функции debounce() и throttle(). Обе работают с повторными вызовами, но решают разные задачи.
util.debounce() откладывает выполнение функции до окончания заданного периода без новых вызовов. Представим сервис, который обновляет поисковые подсказки после изменения строки запроса: пока символы продолжают поступать, прежние вызовы можно объединить по времени. util.throttle() ограничивает число запусков за определённый интервал — такой механизм пригоден для управления интенсивностью отправки задач или обращений к внешнему API.
Прежде для подобного поведения проекты часто использовали сторонние библиотеки либо собственные обёртки над таймерами. В Node.js 24.22.0 эти механизмы доступны непосредственно через стандартный модуль. Для throttle() предусмотрены параметры очереди, конкурентного выполнения и обработки вызовов сверх лимита; операции также поддерживают отмену через AbortSignal.
SQLite и мониторинг получили более точное управление ресурсами
Во встроенном модуле node:sqlite у StatementSync появились методы close() и [Symbol.dispose](). Подготовленный SQL-запрос теперь можно явно закрыть после использования. Поддержка механизма Symbol.dispose позволяет увязать освобождение ресурса с управляемой областью его использования.
Для приложений, которые выполняют множество запросов к локальной базе SQLite, это даёт понятный способ завершать работу с подготовленными выражениями. Ранее такого отдельного публичного метода у StatementSync не было.
Изменения затронули и node:perf_hooks: добавлены скользящая гистограмма SlidingWindowHistogram, новые средства анализа распределения измерений и экспорт либо импорт гистограмм в формате CBOR. Эти инструменты предназначены для изучения задержек и их изменения во времени — например, при мониторинге времени ответа сервера.
Node.js 26.12.0 расширил низкоуровневую поддержку WebSocket
В параллельном выпуске Node.js 26.12.0 Current появились http.websocketMask() и http.websocketUnmask(). Они выполняют маскирование и обратную обработку данных WebSocket-кадров с использованием повторяющегося четырёхбайтового ключа — механизма, описанного в протоколе RFC 6455.
Зачем это нужно? WebSocket-клиент маскирует отправляемые кадры, а сервер снимает маску при получении. Раньше библиотеки могли выполнять эту операцию циклом на JavaScript либо подключать дополнительный нативный модуль. Новые функции дают доступ к реализации непосредственно в Node.js. В обсуждении изменения разработчики отмечают, что на более крупных буферах нативная обработка может работать быстрее; для совсем небольших входных данных накладные расходы вызова уменьшают преимущество.
Эти функции ориентированы прежде всего на авторов сетевых библиотек и обработчиков протокола. Для большинства приложений, использующих готовые WebSocket-библиотеки, практический эффект будет зависеть от того, станут ли библиотеки применять новый API.
На 21 октября запланированы отдельные исправления безопасности
Node.js 24.22.0 относится к ветке долгосрочной поддержки LTS, а 26.12.0 на дату публикации остаётся веткой Current. Различие объясняет состав релизов: часть возможностей из 26.x теперь стала доступна проектам на 24.x, а в 26.x продолжают появляться новые низкоуровневые функции.
14 октября команда Node.js также обновила предупреждение о запланированных на 21 октября 2026 года выпусках безопасности для веток 22.x, 24.x и 26.x. В каждой из них максимальная заявленная серьёзность устраняемых проблем — High. Подробности уязвимостей в опубликованном уведомлении пока не раскрываются.
Таким образом, релизы от 14 октября добавили функциональные возможности, а отдельные обновления безопасности ожидаются 21 октября или вскоре после этой даты. Их конкретный состав станет известен с публикацией соответствующих бюллетеней.
Источники
- Node.js 24.22.0 (LTS) — официальный список изменений
- Node.js 26.12.0 (Current) — официальный список изменений
- Node.js — документация модуля Crypto
- Node.js — документация модуля Util
- Node.js — обсуждение функций маскирования WebSocket
- Node.js — объявление об обновлениях безопасности 21 октября 2026 года
- Node.js — график поддержки версий