Ġie rilaxxat Node.js 22.0, pjattaforma għat-tħaddim ta' applikazzjonijiet tan-netwerk f'JavaScript. Node.js 22.0 huwa kklassifikat bħala fergħa ta 'appoġġ fit-tul, iżda dan l-istatus se jiġi assenjat biss f'Ottubru, wara l-istabbilizzazzjoni. Node.js 22.x se jkun appoġġjat sat-30 ta' April, 2027. Il-manutenzjoni tal-fergħa LTS preċedenti ta 'Node.js 20.x se ddum sa April 2026, u s-sena ta' qabel l-aħħar fergħa LTS 18.x sa April 2025. Il-fergħa ta' staging ta' Node.js 21.x se titwaqqaf fl-1 ta' Ġunju 2024.
Titjib ewlieni:
- Il-magna V8 ġiet aġġornata għall-verżjoni 12.4, użata fi Chromium 124. Fost il-bidliet meta mqabbla mal-fergħa Node.js 21, li użat il-magna V8 11.8), huwa nnutat:
- Appoġġ għall-estensjoni WasmGC, li tissimplifika l-porting ta 'programmi miktuba f'lingwi ta' programmar li jużaw garbage collector (Kotlin, PHP, Java, eċċ.) għal WebAssembly. WasmGC iżid tipi ġodda ta 'strutturi u arrays li jistgħu jużaw allokazzjoni ta' memorja mhux lineari.
- Appoġġ għall-metodu Array.fromAsync(), li b'mod asinkroniku jirritorna istanza ġdida ta 'oġġett Array ikkuppjat minn oġġett iterable simili għal array, iterable jew async.
- Appoġġ għal metodi iteratur bħal .map, .filter, .find, .take, .drop, .forEach u .reduce.
- Appoġġ għal oġġett Set li jiddefinixxi ġabra ta 'valuri u joffri metodi li jimplimentaw operazzjonijiet ta' sett komuni, bħal intersezzjoni, unjoni, differenza u żieda.
- Il-kompilatur JIT li jottimizza l-Maglev huwa attivat awtomatikament, immirat li jiġġenera malajr kodiċi tal-magni ta 'prestazzjoni għolja għal kodiċi JavaScript użat ħafna. L-abilitazzjoni ta 'Maglev tista' tħaffef b'mod sinifikanti applikazzjonijiet CLI ta 'ħajja qasira li ma jwettqux operazzjonijiet fit-tul, pereżempju, iż-żmien biex jitlesta t-test Jetstrea jitnaqqas b'7.5%, u t-test tal-Ispeedometer b'5%.
- Ix-xogħol ma 'flussi ġie aċċellerat billi żied il-valur tal-għażla highWaterMark minn 16 KB għal 65 KB (tiddefinixxi l-limitu sa liema reġistrazzjoni hija buffered). Il-bidla tirriżulta f'żieda fil-konsum tal-memorja, għalhekk l-applikazzjonijiet iddisinjati biex jaħdmu fuq RAM limitat jista 'jkollhom bżonn jerġgħu lura għall-valur l-antik permezz ta' sejħa lil setDefaultHighWaterMark().
- Prestazzjoni mtejba tal-fetch() u l-APIs tar-runner tat-test billi tagħmel l-istanzazzjoni AbortSignal aktar effiċjenti. Il-prestazzjoni tal-APIs relatati max-xogħol sinkroniku mas-sistemi tal-fajls ġiet imtejba.
- Ġiet ipprovduta karatteristika sperimentali biex tuża s-sejħa "require()" biex tgħabbi moduli JavaScript ESM (Moduli ECMAScript) f'modalità sinkronika. Il-moduli ESM jintużaw fil-browsers u jissostitwixxu moduli CommonJS speċifiċi għal Node.js. Biex tagħbija permezz ta '"require()", il-modulu ESM għandu jiġi eżegwit f'modalità sinkronika (mingħajr stennija fl-ogħla livell). L-appoġġ huwa attivat permezz tal-bandiera "--experimental-require-module".
- Abbiltà sperimentali miżjuda biex imexxu skripts definiti fil-fajl package.json bl-użu tal-kmand "--run". "
- Il-kmand “node –watch” ġie mċaqlaq għall-kategorija stabbli bl-implimentazzjoni ta’ mod ta’ għassa li jiżgura li l-proċess jerġa’ jinbeda meta jinbidel il-fajl importat (pereżempju, jekk “node –watch index.js” jiġi esegwit, il- proċess jerġa’ jinbeda awtomatikament meta jinbidel index.js).
- L-implimentazzjoni nattiva tal-WebSocket API ġiet stabbilizzata, li tippermetti li WebSocket jintuża fil-modalità klijent mingħajr ma jiġu installati dipendenzi addizzjonali.
- Żid appoġġ parzjali għan-Navigator API.
- Il-Webstreams API żiedet appoġġ għall-format tal-kompressjoni deflate-raw.
- Miżjud funzjonijiet glob u globSync ma' node:fsmodule għat-tqabbil tal-mudelli tal-mogħdijiet tal-fajls.
- Immaniġġjar imtejjeb ta 'stacks IPv6 konfigurati ħażin. Algoritmu Implimentat Happy Eyeballs għal rollback malajr f'każ ta 'problemi bl-operazzjoni IPv6.
- L-API util ġiet deprecata.
- Verżjonijiet aġġornati tad-dipendenza: 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 sa 3.8.0, ada 2.7.7 u un.6.6.0dici .
Il-pjattaforma Node.js tista' tintuża kemm għall-appoġġ min-naħa tas-server tal-applikazzjonijiet tal-web kif ukoll għall-ħolqien ta' programmi standard tan-netwerk min-naħa tal-klijent u tas-server. Biex tespandi l-funzjonalità tal-applikazzjonijiet Node.js, ġiet ippreparata ġabra kbira ta' moduli, inklużi dawk li jimplimentaw servers u klijenti ta' HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli għall-integrazzjoni ma' diversi oqfsa tal-web, handlers WebSocket u Ajax, konnetturi għal DBMS (MySQL, PostgreSQL, SQLite, MongoDB), magni tat-template, magni CSS, implimentazzjonijiet ta' algoritmi kriptografiċi u sistemi ta' awtorizzazzjoni (OAuth), parsers XML.
Biex jimmaniġġa għadd kbir ta 'talbiet paralleli, Node.js juża mudell ta' eżekuzzjoni ta 'kodiċi asinkroniku bbażat fuq proċessar ta' avvenimenti li ma jimblokkax u jiddefinixxi callback handlers. Metodi appoġġjati għall-konnessjonijiet multiplexing jinkludu epoll, kqueue, /dev/poll, u select. Għal konnessjonijiet multiplex, tintuża l-librerija libuv, li hija add-on għal libev fuq sistemi Unix u għal IOCP fuq Windows. Il-librerija libeio tintuża biex toħloq grupp ta 'ħajt, u c-ares huwa integrat biex iwettaq mistoqsijiet DNS f'mod li ma jimblokkax. Is-sejħiet kollha tas-sistema li jikkawżaw l-imblukkar huma eżegwiti fil-pool tal-ħajt u mbagħad, bħal dawk li jimmaniġġjaw is-sinjali, jgħaddu r-riżultat tax-xogħol tagħhom lura minn pajp bla isem.
L-eżekuzzjoni tal-kodiċi JavaScript hija żgurata permezz tal-użu tal-magna V8 żviluppata minn Google (barra minn hekk, Microsoft qed tiżviluppa verżjoni ta 'Node.js bil-magna Chakra-Core). Fil-qalba tiegħu, Node.js huwa simili għall-Perl AnyEvent, Ruby Event Machine, Python Twisted oqfsa u l-implimentazzjoni ta 'avvenimenti f'Tcl, iżda l-linja tal-avvenimenti f'Node.js hija moħbija mill-iżviluppatur u tixbaħ l-ipproċessar tal-avvenimenti f'applikazzjoni tal-web taħdem fil-browser.
Sors: opennet.ru
