22 сентября вышел Node.js 26.10.0 с новыми API для работы с сертификатами PKCS#12, файлами, сетевыми сокетами и анализа производительности. Разработчики также расширили взаимодействие с виртуальной файловой системой, добавили функции управления частотой вызовов и исправили ошибки в сетевых протоколах.

crypto.parsePKCS12() упрощает работу с сертификатами
В Node.js 26.10.0 появился метод crypto.parsePKCS12() для разбора контейнеров PKCS#12. Этот формат, обычно встречающийся в файлах .p12 и .pfx, позволяет хранить сертификаты и закрытые ключи в одном защищённом контейнере.
Такие файлы используются при настройке защищённых соединений, клиентской аутентификации и взаимодействии с корпоративной инфраструктурой. Новый API позволяет обрабатывать их средствами Node.js без необходимости самостоятельно реализовывать разбор формата.
Изменения затронули и другие криптографические механизмы. Разработчики доработали обработку RSA и эллиптических кривых, оптимизировали подготовку ключей и добавили поддержку гибридных механизмов инкапсуляции ключей в Web Cryptography. Подробности перечислены в официальном описании Node.js 26.10.0.
openAsBlobSync() создаёт Blob из файла синхронно
В модуле node:fs появился метод openAsBlobSync(). Он позволяет синхронно получить объект Blob, связанный с файлом. Такой объект подходит для интерфейсов, работающих с двоичными данными, в том числе для передачи файлов через веб-совместимые API.
Ранее в Node.js уже существовал асинхронный openAsBlob(). Новая синхронная разновидность расширяет выбор для программ, которым нужен Blob во время последовательной инициализации. Сам синхронный вызов при этом блокирует выполняющий его поток до завершения операции.
Доработали и FFI — интерфейс для вызова функций из нативных библиотек. Теперь он поддерживает загрузку библиотек из смонтированной виртуальной файловой системы (VFS). В предыдущем выпуске 26.9.0 разработчики включили модуль FFI по умолчанию и связали VFS с загрузчиками JavaScript-модулей. Новое изменение продолжает эту работу: приложения получают дополнительный способ объединять JavaScript-код и нативные зависимости.
Привязанные сокеты можно передавать потокам и дочерним процессам
Модуль node:net получил поддержку передачи объектов net.BoundSocket рабочим потокам и дочерним процессам. Речь идёт о сетевых сокетах, для которых уже выполнена привязка к адресу. Возможность особенно заметна в архитектурах, где несколько исполнителей обслуживают сетевые задачи и обмениваются ресурсами.
Ранее для такого взаимодействия требовались другие способы организации сетевых ресурсов. В версии 26.10.0 передача привязанного сокета стала частью соответствующего API Node.js. Конкретная схема распределения соединений по-прежнему зависит от устройства приложения.
util.throttle() и util.debounce() управляют частотой вызовов
Два новых метода в node:util решают знакомые задачи обработки событий. util.throttle() позволяет ограничивать частоту выполнения функции, а util.debounce() — откладывать вызов, пока не завершится серия частых обращений.
Представим сервер, который получает большое количество событий изменения состояния. Для периодического обновления статистики подходит ограничение частоты, а для реакции после завершения серии изменений — отложенный вызов. До появления этих методов аналогичную логику обычно реализовывали самостоятельно или подключали сторонние библиотеки.
В node:perf_hooks появились SlidingWindowHistogram и поддержка QRDE-анализа гистограмм. Первый инструмент предназначен для работы с показателями в скользящем временном окне: старые измерения постепенно уступают место новым. Это дополняет средства наблюдения за задержками и другими характеристиками работающих приложений. В версии 26.9.0 разработчики уже добавили доверительные интервалы для среднего значения и обмен гистограммами в формате CBOR.
SQLite, HTTP/2 и QUIC получили точечные исправления
Встроенный модуль SQLite теперь может связывать JavaScript-значение undefined с SQL-значением NULL. Изменение устраняет разрыв между двумя представлениями отсутствующих данных и упрощает передачу параметров в SQL-запросах.
В список исправлений попали и сетевые компоненты. Для HTTP/2 доработали завершение ожидающих операций записи при уничтожении соединения и устранили ошибку, возникавшую при закрытии сессии из обработчика потока. В QUIC исправили обработку тайм-аутов, закрытие потоков и ряд внутренних ошибок. Отдельные изменения затронули TLS, потоки данных, обработку AbortSignal и декодирование UTF-16LE в Buffer.
Эти исправления описаны в журнале изменений как обычные изменения релиза. В официальном сообщении версия 26.10.0 не обозначена отдельным выпуском безопасности.
Node.js 26 остаётся веткой Current перед переходом на LTS
На момент публикации Node.js 26.10.0 относится к ветке Current, предназначенной для активного развития платформы. По официальному графику выпусков, переход ветки 26.x к Active LTS запланирован на 28 октября 2026 года. Действующая ветка 24.x сохраняет статус Active LTS.
Сентябрьские выпуски показывают, какие направления разработчики развивают перед этим переходом. В Node.js 26.9.0 появились встроенные инструменты измерения производительности, дополнительные криптографические API, поддержка Web Workers и интеграция VFS с загрузчиками модулей. Версия 26.10.0 расширила эти возможности и затронула несколько привычных серверных API. Как конкретные проекты используют новые механизмы, зависит от их сетевой архитектуры, требований к сертификатам и способов измерения производительности.