Node.js 25.0.0, eine Plattform zum AusfĂŒhren von Netzwerkanwendungen in JavaScript, wurde veröffentlicht. Node.js 25.0 ist ein Zwischenzweig, der sieben Monate lang (bis Juni 2026) unterstĂŒtzt wird. Die Stabilisierung von Node.js 24 wird in den kommenden Tagen abgeschlossen sein. Ende Oktober erhĂ€lt es den LTS-Status und wird bis April 2028 unterstĂŒtzt. Der Support fĂŒr die vorherigen LTS-Zweige Node.js 22.x und 20.x wird bis April 2027 bzw. 2026 fortgesetzt.
Wichtigste Verbesserungen:
- Die V8-Engine wurde auf Version 14.1 aktualisiert, die in Chromium 141 verwendet wird. Zu den Verbesserungen gegenĂŒber der vorherigen Node.js-Version gehören eine deutliche Leistungssteigerung fĂŒr die JSON.stringify-Methode, WebAssembly- und JIT-Optimierungen sowie die Implementierung von Methoden zur Konvertierung zwischen Uint8Array und Base64- oder Hexadezimaldaten.
- Der Mechanismus des Berechtigungsmodells, der die EinschrĂ€nkung des Zugriffs auf bestimmte Ressourcen zur Laufzeit ermöglicht, wurde aktualisiert und enthĂ€lt nun die Option â--allow-netâ, um den Netzwerkzugriff zu ermöglichen (wenn die Option â--allow-netâ nicht angegeben ist, wird beim AusfĂŒhren von Node.js im Modus â--permissionâ beim Versuch, NetzwerkvorgĂ€nge durchzufĂŒhren, der Fehler ERR_ACCESS_DENIED zurĂŒckgegeben).
- StandardmĂ€Ăig aktiviert kompatibel mit Browsern Die Web Storage API dient der persistenten (localStorage-Klasse) oder temporĂ€ren (sessionStorage-Klasse) Speicherung von SchlĂŒssel/Wert-Paaren. Der Entwicklungsstatus der Web Storage API wurde aufgehoben.
- Die Klasse ErrorEvent, die eine browserkompatible Schnittstelle zur Verarbeitung von Ereignissen mit Fehlerinformationen bereitstellt, wurde in die Kategorie âglobal zugĂ€nglichâ verschoben (kann ohne expliziten Import verwendet werden).
- WebAssembly unterstĂŒtzt jetzt die JavaScript Promise Integration (JSPI)-API, die den Zugriff auf asynchrone Web-APIs aus sequenziell ausgefĂŒhrtem, in WebAssembly kompiliertem Code ermöglicht.
- FĂŒr die portable Nutzung des kompilierten Objekt-Caches wurde die Option âNODE_COMPILE_CACHE_RELATIVE_PATHâ hinzugefĂŒgt. In diesem Modus werden Hashes zur Objektidentifikation anhand relativer Dateipfade berechnet, sodass der Inhalt des Codeverzeichnisses zusammen mit dem Cache verschoben und eingebettet werden kann.
- Möglichkeit zur Profilierung der CPU-Auslastung hinzugefĂŒgt.
- Der NPM-Paketmanager wurde auf Version 11.6.2 aktualisiert.
- UnterstĂŒtzung fĂŒr Python 3.14 hinzugefĂŒgt.
- Die mindestens unterstĂŒtzten Versionen sind Clang 19 und Xcode 16.4.
- Das SlowBuffer-Objekt, das zuvor aufgrund potenzieller Sicherheitsprobleme veraltet war, ist veraltet. Verwenden Sie stattdessen die Methode Buffer.allocUnsafeSlow().
Die Node.js-Plattform kann sowohl fĂŒr die serverseitige UnterstĂŒtzung von Webanwendungen als auch fĂŒr die Erstellung standardmĂ€Ăiger client- und serverseitiger Netzwerkprogramme verwendet werden. Um die FunktionalitĂ€t von Node.js-Anwendungen zu erweitern, wurde eine groĂe Sammlung von Modulen entwickelt, darunter auch solche, die ⊠implementieren. Server und Clients von HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, Module zur Integration mit verschiedenen Web-Frameworks, WebSocket- und Ajax-Handler, Konnektoren zu DBMS (MySQL, PostgreSQL, SQLite, MongoDB), Template-Engines, CSS-Engines, Implementierungen kryptografischer Algorithmen und Autorisierungssysteme (OAuth), XML-Parser.
Um eine groĂe Anzahl gleichzeitiger Anfragen zu verarbeiten, verwendet Node.js ein asynchrones CodeausfĂŒhrungsmodell, das auf nicht-blockierender Ereignisverarbeitung und Callback-Handlern basiert. UnterstĂŒtzte Methoden fĂŒr das Verbindungs-Multiplexing sind epoll, kqueue, /dev/poll und select. Das Verbindungs-Multiplexing nutzt die libuv-Bibliothek, die auf libev unter Unix-Systemen und IOCP unter Windows 0.0 aufbaut. WindowsDie libeio-Bibliothek dient zur Erstellung eines Thread-Pools, 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 ihre Ergebnisse anschlieĂend, Ă€hnlich wie Signalbehandlungsroutinen, ĂŒber eine unbenannte Pipe zurĂŒck.
Die AusfĂŒhrung von JavaScript-Code wird durch den Einsatz der von Google entwickelten V8-Engine sichergestellt (zusĂ€tzlich entwickelt Microsoft eine Version von Node.js mit der Chakra-Core-Engine). Im Kern Ă€hnelt Node.js den Frameworks Perl AnyEvent, Ruby Event Machine, Python Twisted und der Implementierung von Ereignissen in Tcl, aber die Ereignisschleife in Node.js bleibt dem Entwickler verborgen und Ă€hnelt der Ereignisverarbeitung in einer Webanwendung lĂ€uft im Browser.
Source: opennet.ru
