Состоялся релиз Node.js 26.0.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 26.0 отнесён к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js 26.x будет осуществляться до мая 2029 года. Сопровождение прошлой LTS-ветки Node.js 24.x будет осуществляться до 30 апреля 2028 года, а позапрошлой 22.x — до 30 апреля 2027 года. Сопровождение LTS-ветки 20.x прекращено 30 апреля 2026 года, а промежуточной ветки Node.js 25.x будет прекращено 1 июня 2026 года.
Wichtigste Verbesserungen:
- Включён по умолчанию API Temporal, предлагающий альтернативный набор методов для работы с датами и временем. API позволяет манипулировать датами с учётом и без учёта часовых поясов, конвертировать время, форматировать вывод и выполнять арифметические операции со временем. Время может задаваться в независимом от часового пояса представлении (Temporal.PlainDate, Temporal.PlainTime, Temporal.PlainDateTime), с привязкой к часовому поясу (Temporal.ZonedDateTime) и в эпохальном представлении (Temporal.Instant — число наносекунд с 1 января 1970 года).
- Движок V8 обновлён до версии 14.6, применяемой в Chromium 146. Из улучшений по сравнению с прошлым выпуском Node.js отмечена возможность объединять несколько итераторов в один с помощью метода Iterator.concat(), а также реализация спецификации «upsert» для упрощения работы с коллекциями пар ключ/значение в JavaScript-объектах Map и WeakMap.
- HTTP-клиент undici обновлён до ветки 8.x.
- Удалён метод http.Server.prototype.writeHeader(), вместо которого следует использовать http.Server.prototype.writeHead().
Die Node.js-Plattform kann sowohl für die Serverwartung von Webanwendungen als auch für die Erstellung regulärer Client- und Server-Netzwerkprogramme verwendet werden. Um die Funktionalität von Anwendungen für Node.js zu erweitern, wurde eine große Modulsammlung vorbereitet, in der Sie Module mit der Implementierung von HTTP-, SMTP-, XMPP-, DNS-, FTP-, IMAP-, POP3-Servern und -Clients sowie Module zur Integration finden mit verschiedenen Web-Frameworks, WebSocket- und Ajax-Handlern, DBMS-Konnektoren (MySQL, PostgreSQL, SQLite, MongoDB), Templating-Engines, CSS-Engines, Implementierungen von Kryptoalgorithmen und Autorisierungssystemen (OAuth), XML-Parsern.
Um eine große Anzahl gleichzeitiger Anfragen zu verarbeiten, verwendet Node.js ein asynchrones Codeausführungsmodell, das auf nicht blockierender Ereignisbehandlung und der Definition von Rückrufhandlern basiert. Zu den unterstützten Methoden zum Multiplexen von Verbindungen gehören epoll, kqueue, /dev/poll und select. Zum Multiplexen von Verbindungen wird die Bibliothek libuv verwendet, die eine Obermenge von libev auf Unix-Systemen und IOCP unter Windows ist. Die Bibliothek libeio wird zum Erstellen eines Thread-Pools verwendet und c-ares ist integriert, um DNS-Abfragen im nicht blockierenden Modus durchzuführen. Alle blockierenden Systemaufrufe werden innerhalb des Thread-Pools ausgeführt und geben dann wie Signalhandler das Ergebnis ihrer Arbeit über eine unbenannte Pipe zurück.
Выполнение JavaScript-кода обеспечивается через задействование разработанного компанией Google движка V8. По своей сути Node.js похож на фреймворки Perl AnyEvent, Ruby Event Machine, Python asyncio и реализацию событий в Tcl, но цикл обработки событий (event loop) в Node.js скрыт от разработчика и напоминает обработку событий в web-приложении, работающем в браузере.
Source: opennet.ru
