Node.js 22.0 gouf verëffentlecht, eng Plattform fir Netzwierkapplikatiounen a JavaScript ze lafen. Node.js 22.0 ass als laangfristeg Ënnerstëtzungszweig klasséiert, awer dëse Status gëtt nëmmen am Oktober, no der Stabiliséierung, zougewisen. Node.js 22.x gëtt ënnerstëtzt bis den 30. Abrëll 2027. Ënnerhalt vun der viregter LTS Branche vun Node.js 20.x dauert bis Abrëll 2026, an d'Joer virdrun LTS Branche 18.x bis Abrëll 2025. D'Staging Branche vum Node.js 21.x gëtt den 1. Juni 2024 gestoppt.
Main Verbesserungen:
- De V8-Motor gouf op d'Versioun 12.4 aktualiséiert, benotzt am Chromium 124. Ënnert den Ännerungen am Verglach zu der Node.js 21 Branche, déi de V8 11.8-Motor benotzt huet), gëtt bemierkt:
- Ënnerstëtzung fir d'WassmGC Extensioun, déi d'Porting vu Programmer vereinfacht, geschriwwen a Programméierungssproochen, déi e Gerempelssammler benotzen (Kotlin, PHP, Java, etc.) op WebAssembly. WasmGC füügt nei Aarte vu Strukturen an Arrays un, déi net-linear Erënnerungsallokatioun benotze kënnen.
- Ënnerstëtzung fir d'Method Array.fromAsync (), déi asynchron eng nei Instanz vun engem Array-Objet kopéiert vun engem Array-ähnlechen, iterablen oder asynchrone iterablen Objet zréckginn.
- Ënnerstëtzung fir Iteratormethoden wéi .map, .filter, .find, .take, .drop, .forEach an .reduce.
- Ënnerstëtzung fir e Set Objet deen eng Sammlung vu Wäerter definéiert a Methoden ubitt déi gemeinsam Set Operatiounen implementéieren, wéi Kräizung, Unioun, Ënnerscheed, an Zousatz.
- De Maglev optimiséierende JIT Compiler ass par défaut aktivéiert, zielt fir séier High-Performance Maschinncode fir schwéier benotzt JavaScript Code ze generéieren. Maglev aktivéieren kann d'Kuerzlieweg CLI Uwendungen wesentlech beschleunegen, déi keng laangfristeg Operatiounen ausféieren, zum Beispill, d'Zäit fir den Jetstrea Test ofzeschléissen gëtt ëm 7.5% reduzéiert, an de Speedometer Test ëm 5%.
- D'Aarbecht mat Streame gouf beschleunegt andeems de Wäert vun der HighWaterMark-Optioun vu 16 KB op 65 KB erhéicht gëtt (definéiert d'Limite bis zu där d'Opnahm gebuffert ass). D'Ännerung féiert zu enger verstäerkter Erënnerung Konsum, sou datt Uwendungen entworf fir op limitéierter RAM ze lafen, musse vläicht den ale Wäert iwwer en Opruff un setDefaultHighWaterMark ().
- Verbesserte Leeschtung vun der fetch () an Test Leefer APIen vun AbortSignal Instantiatioun méi efficace maachen. D'Performance vun APIen am Zesummenhang mat Synchronaarbecht mat Dateiesystemer gouf verbessert.
- Eng experimentell Feature gouf zur Verfügung gestallt fir den "require()" Uruff ze benotzen fir JavaScript ESM Moduler (ECMAScript Moduler) am Synchronmodus ze lueden. ESM Moduler ginn a Browser benotzt an ersetzen CommonJS Moduler spezifesch fir Node.js. Fir iwwer "require()" ze lueden, muss den ESM Modul am Synchronmodus ausgefouert ginn (ouni um Topniveau waarden). Ënnerstëtzung gëtt iwwer de Fändel "--experimentell-require-module" aktivéiert.
- Experimentell Fäegkeet bäigefüügt fir Scripten ze lafen, déi an der package.json Datei definéiert sinn mam Kommando "--run" "
- De Kommando "Node -watch" gouf an déi stabil Kategorie geplënnert mat der Ëmsetzung vun engem Iwwerwaachungsmodus, deen garantéiert datt de Prozess nei gestart gëtt wann déi importéiert Datei ännert (zum Beispill, wann "Node -watch index.js" ausgefouert gëtt, gëtt de Prozess gëtt automatesch nei gestart wann index.js ännert).
- Déi gebierteg Implementatioun vun der WebSocket API gouf stabiliséiert, sou datt WebSocket am Client Modus benotzt ka ginn ouni zousätzlech Ofhängegkeeten z'installéieren.
- Deelweis Ënnerstëtzung fir den Navigator API bäigefüügt.
- D'Webstreams API huet Ënnerstëtzung fir d'deflate-raw Kompressiounsformat bäigefüügt.
- Füügt Glob- a GlobSync Funktiounen un Node: fsmodule fir Mustermatchung vu Dateiweeër.
- Verbesserte Handhabung vu falsch konfiguréierten IPv6 Stacks. Implementéiert Happy Eyeballs Algorithmus fir séier Réckroll am Fall vu Probleemer mat der IPv6 Operatioun.
- D'Util API gouf ofgeschaaft.
- Aktualiséiert Ofhängegkeet Versiounen: npm 10.5.1, libuv 1.48.0, simdutf 5.2.3, c-ares 1.28.1, zlib 1.3.0.1-motley-24c07df, simdjson bis 3.8.0, ada 2.7.7 an und. .
D'Node.js Plattform kann souwuel fir Server-Säit Ënnerstëtzung vu Webapplikatiounen wéi och fir Standard Client- a Server-Säit Netzwierkprogrammer benotzt ginn. Fir d'Funktionalitéit vun Node.js Applikatiounen auszebauen, gouf eng grouss Sammlung vu Moduler virbereet, dorënner déi, déi ... implementéieren Serveren a Clienten vun HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, Moduler fir d'Integratioun mat verschiddene Web-Frameworks, WebSocket- an Ajax-Handler, Connectoren zu DBMS (MySQL, PostgreSQL, SQLite, MongoDB), Template-Engines, CSS-Engines, Implementatioune vu kryptographeschen Algorithmen an Autorisatiounssystemer (OAuth), XML-Parseren.
Fir eng grouss Zuel vu parallele Ufroen ze handhaben, benotzt Node.js en asynchrone Code Ausféierungsmodell baséiert op net-blockéierend Eventveraarbechtung an definéieren Callback Handler. Ënnerstëtzt Methoden fir Multiplexing Verbindungen enthalen epoll, kqueue, /dev/poll, a wielt. Fir Verbindungsmultiplexing gëtt d'libuv-Bibliothéik benotzt, wat en Add-on fir libev op Unix Systemer an zu IOCP op Windows ass. D'libeio Bibliothéik gëtt benotzt fir e Fuedempool ze kreéieren, an c-ares ass integréiert fir DNS Ufroen an engem net-blockéierende Modus auszeféieren. All Systemappellen, déi d'Blockéierung verursaachen, ginn am Fuedempool ausgefouert an dann, wéi Signalhandteren, d'Resultat vun hirer Aarbecht duerch en onbenannt Päif zréckginn.
D'Ausféierung vum JavaScript Code ass gesuergt duerch d'Benotzung vum V8 Motor entwéckelt vu Google (ausserdeem entwéckelt Microsoft eng Versioun vum Node.js mam Chakra-Core Engine). Am Kär ass Node.js ähnlech wéi de Perl AnyEvent, Ruby Event Machine, Python Twisted Frameworks an d'Ëmsetzung vun Eventer am Tcl, awer d'Event Loop am Node.js ass vum Entwéckler verstoppt a gläicht Eventveraarbechtung an enger Webapplikatioun am Browser lafen.
Source: opennet.ru
