Die Plattform Node.js 24.0.0 wurde veröffentlicht

Die Version Node.js 24.0.0 wurde veröffentlicht, eine Plattform zur Ausführung von Webanwendungen in JavaScript. Node.js 24.0 gehört zu den Long-Term-Support-Branches, dieser Status wird jedoch erst im Oktober zugewiesen, nach einer Stabilisierung. Der Support für Node.js 24.x wird bis zum 30. April 2028 gewährleistet. Der Support für die vorherige LTS-Version Node.js 22.x endet im April 2027, und für die Version 20.x endet er im April 2026. Der Support der LTS-Version 18.x wurde am 30. April 2025 eingestellt, während der Übergangsbranch Node.js 23.x am 1. Juni 2025 eingestellt wird.

Wesentliche Verbesserungen:

  • Im API AsyncLocalStorage wird standardmäßig die Klasse AsyncContextFrame verwendet, die als stabil markiert ist. AsyncContextFrame implementiert einen effizienteren Mechanismus zur Verfolgung des asynchronen Kontexts, der die Leistung erheblich steigert.
  • Das API URLPattern ist jetzt als globales Objekt verfügbar, das ohne explizite Importierung verwendet werden kann. URLPattern bietet Funktionen zur Überprüfung, ob eine URL einem bestimmten Muster entspricht, was beispielsweise zur Analyse von Links verwendet werden kann.
  • Das Permission Model wurde verbessert und stabilisiert, was es ermöglicht, den Zugriff auf bestimmte Ressourcen während der Ausführung einzuschränken (zum Beispiel kann das Erstellen von Kindprozessen verboten oder der Lese- oder Schreibzugriff auf bestimmte Teile des Dateisystems eingeschränkt werden, und Erweiterungen können deaktiviert werden). Anstelle des experimentellen Flags „—experimental-permission“ kann nun das Flag „—permission“ zur Aktivierung des Permission Models verwendet werden.
  • Die Funktionen des Moduls node:test (test_runner), das zum Erstellen und Ausführen von Tests in JavaScript dient und Ergebnisse im TAP-Format (Test Anything Protocol) zurückgibt, wurden erweitert. Das Modul wartet jetzt automatisch auf den Abschluss von verschachtelten Tests, ohne dass await verwendet werden muss.
  • Der HTTP-Client undici wurde auf Branch 7.x aktualisiert, der die Leistung verbessert und Unterstützung für neue HTTP-Funktionen hinzugefügt hat.
  • Die V8-Engine wurde auf Version 13.6 aktualisiert, die in Chromium 136 verwendet wird. Zu den neuen Funktionen im Vergleich zur vorherigen Version von Node.js gehört die Unterstützung für typisierte Arrays Float16Array, manuelle Ressourcenverwaltung, die Methode RegExp.escape (String-Escaping für RegExp), 64-Bit-Zeiger (Memory64) in WebAssembly und die Methode Error.isError.
  • Der Paketmanager NPM wurde auf Version 11 aktualisiert.
  • Die Unterstützung des MSVC-Compilers wurde eingestellt. Für die Kompilierung auf der Windows-Plattform muss ClangCL verwendet werden.

Die Node.js-Plattform kann sowohl für die serverseitige Unterstützung von Webanwendungen als auch für die Entwicklung herkömmlicher Client- und Server-Netzwerkprogramme genutzt werden. Für die Erweiterung der Funktionalität von Node.js-Anwendungen steht eine umfangreiche Sammlung von Modulen zur Verfügung, die Module mit Implementierungen bereitstellt, 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 Kryptografie-Algorithmen und Authentifizierungssystemen (OAuth), XML-Parser.

Um eine große Anzahl paralleler Anfragen zu bearbeiten, nutzt Node.js ein asynchrones Modell zur Ausführung von Code, das auf der Verarbeitung von Ereignissen im nicht-blockierenden Modus und der Definition von Callback-Handlern basiert. Zu den unterstützten Multiplexing-Methoden gehören epoll, kqueue, /dev/poll und select. Für das Multiplexing von Verbindungen wird die Bibliothek libuv verwendet, die eine Schicht über libev in Unix-Systemen und IOCP in Windows darstellt. Für die Erstellung eines Thread-Pools kommt die Bibliothek libeio zum Einsatz, und für nicht-blockierende DNS-Anfragen ist c-ares integriert. Alle systemcalls, die Blockierungen verursachen, werden innerhalb des Thread-Pools ausgeführt und über ein anonymes Pipe zurückgegeben, sowie die Signalhandler, die das Ergebnis ihrer Arbeit zurückleiten.

Die Ausführung von JavaScript-Code erfolgt über die Nutzung der von Google entwickelten V8-Engine (darüber hinaus entwickelt Microsoft eine Variante von Node.js mit der Chakra-Core-Engine). Node.js ähnelt in seiner Funktionsweise den Frameworks Perl AnyEvent, Ruby Event Machine, Python Twisted und der Ereignisimplementierung in Tcl, jedoch ist die Ereignisverarbeitungsschleife in Node.js vor dem Entwickler verborgen und ähnelt der Ereignisverarbeitung in Webanwendungen, die im Browser laufen.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster