Die Plattform Node.js 26.0.0 wurde veröffentlicht

Die Veröffentlichung von Node.js 26.0.0, einer Plattform zur Ausführung von Netzwerk-Anwendungen in der Programmiersprache JavaScript, fand statt. Node.js 26.0 gehört zu den Versionen mit langfristiger Unterstützung, dieser Status wird jedoch erst im Oktober nach einer Stabilisierung zugewiesen. Die Unterstützung für Node.js 26.x wird bis Mai 2029 gewährt. Die Unterstützung für die vorherige LTS-Version Node.js 24.x endet am 30. April 2028, und für die vorvorherige Version 22.x endet sie am 30. April 2027. Die Unterstützung der LTS-Version 20.x endet am 30. April 2026, und die Unterstützung der Zwischenversion Node.js 25.x wird am 1. Juni 2026 eingestellt.

Wesentliche Verbesserungen:

  • Die Temporal-API ist standardmäßig aktiviert und bietet eine alternative Methode zur Verarbeitung von Daten und Zeiten. Die API ermöglicht das Manipulieren von Daten unter Berücksichtigung und ohne Berücksichtigung von Zeitzonen, das Konvertieren von Zeiten, das Formatieren von Ausgaben und das Ausführen von arithmetischen Operationen mit Zeiten. Zeiten können in einer zeitzonenunabhängigen Darstellung (Temporal.PlainDate, Temporal.PlainTime, Temporal.PlainDateTime), an eine Zeitzone gebunden (Temporal.ZonedDateTime) und epochal dargestellt werden (Temporal.Instant — die Anzahl der Nanosekunden seit dem 1. Januar 1970).
  • Die V8-Engine wurde auf Version 14.6 aktualisiert, die in Chromium 146 verwendet wird. Zu den Verbesserungen im Vergleich zur vorherigen Node.js-Version gehört die Möglichkeit, mehrere Iteratoren mit der Methode Iterator.concat() zu einem einzigen zu kombinieren, sowie die Implementierung der „upsert“-Spezifikation zur Vereinfachung der Arbeit mit Sammlungen von Schlüssel-/Wert-Paaren in JavaScript-Objekten Map und WeakMap.
  • Der HTTP-Client undici wurde auf die Version 8.x aktualisiert.
  • Die Methode http.Server.prototype.writeHeader() wurde entfernt, stattdessen sollte http.Server.prototype.writeHead() verwendet werden.

Die Node.js-Plattform kann sowohl für die serverseitige Unterstützung von Webanwendungen als auch für die Erstellung von regulären Client- und Server-Netzwerkprogrammen genutzt werden. Um die Funktionalität von Node.js-Anwendungen zu erweitern, wurde eine umfangreiche Sammlung von Modulen erstellt, in der man Module mit Implementierungen finden kann. Server und HTTP-, SMTP-, XMPP-, DNS-, FTP-, IMAP-, POP3-Clients, Module zur Integration mit verschiedenen Web-Frameworks, WebSocket- und Ajax-Handler, Datenbank-Connectoren (MySQL, PostgreSQL, SQLite, MongoDB), Template-Engines, CSS-Engines, Implementierungen von Krypto-Algorithmen und Autorisierungssystemen (OAuth), XML-Parser.

Um eine große Anzahl paralleler Anfragen zu verarbeiten, nutzt Node.js ein asynchrones Codeausführungsmodell, das auf ereignisgesteuerter, nicht-blockierender Verarbeitung und der Definition von Callback-Handlern basiert. Zu den Unterstützten Multiplexing-Methoden gehören epoll, kqueue, /dev/poll und select. Zum Multiplexen von Verbindungen wird die Bibliothek libuv verwendet, die auf libev in Unix-Systemen und auf IOCP in Windows aufbaut. Für die Erstellung eines Thread-Pools wird die Bibliothek libeio eingesetzt, für die Durchführung von DNS-Anfragen im nicht-blockierenden Modus ist c-ares integriert. Alle systematischen Aufrufe, die eine Blockierung verursachen, werden innerhalb des Thread-Pools ausgeführt und über ein anonymes Pipe wieder an die Handler zurückgegeben.

Die Ausführung von JavaScript-Code erfolgt über die Nutzung der von Google entwickelten V8-Engine. Im Grunde genommen ähnelt Node.js den Frameworks Perl AnyEvent, Ruby Event Machine, Python asyncio und der Ereignisimplementierung in Tcl, jedoch ist die Ereignisschleife (event loop) in Node.js für den Entwickler verborgen und ähnelt der Ereignisverarbeitung in einer Webanwendung, die im Browser läuft.

Quelle: opennet.ru

60GB SSD 8Gb DDR4