Lëshimi i Node.js 24.0.0 u realizua, një platformë për ekzekutimin e aplikacioneve të rrjetit me gjuhën JavaScript. Node.js 24.0 është klasifikuar si një version me mbështetje afatgjatë, por ky status do t'i jepet vetëm në tetor, pas procesit të stabilizimit. Mbështetje për Node.js 24.x do të ofrohet deri më 30 prill 2028. Mbështetje për versionin e kaluar LTS Node.js 22.x do të vazhdojë deri në prillin 2027, ndërsa për versionin paraardhës LTS 20.x deri në prillin 2026. Mbështetje për versionin LTS 18.x u ndërpre më 30 prill 2025, ndërsa për versionin ndërmjetës Node.js 23.x do të ndërpritet më 1 qershor 2025.
Përmirësime kryesore:
- Në API-në AsyncLocalStorage, klasi AsyncContextFrame është i angazhuar si standard. AsyncContextFrame implementon një mekanizëm më efikas të ndjekjes së kontekstit asinkron, duke lejuar një rritje të dukshme të performancës.
- API URLPattern tani është i disponueshëm si një objekt global, i cili mund të përdoret pa importim të qartë. URLPattern ofron mundësi për të verifikuar përputhshmërinë e URL-ve me një model të caktuar, që mund të zbatohet për analizimin e lidhjeve.
- Mekanizmi i Modelit tĂ« Lejimeve Ă«shtĂ« pĂ«rmirĂ«suar dhe stabilizuar, duke lejuar kufizimin e aksesit nĂ« disa burime gjatĂ« ekzekutimit (p.sh., mund tĂ« ndalohet krijimi i proceseve fĂ«mijĂ«, t'i kufizohet aksesin pĂ«r tĂ« shkruar apo lexuar nĂ« disa pjesĂ« tĂ« sistemit tĂ« skedareve, tĂ« çaktivizohet shtesat). NĂ« vend tĂ« flamurit eksperimental «âexperimental-permission» pĂ«r aktivizimin e Modelit tĂ« Lejimeve, tani mund tĂ« pĂ«rdoret flamuri «âpermission».
- Kapacitetet e modulit node:test (test_runner), i cili është i dedikuar për krijimin dhe ekzekutimin e testeve në gjuhën JavaScript, që kthejnë rezultatet në formatin TAP (Test Anything Protocol), janë zgjeruar. Moduli tani automatikisht pret përfundimin e testeve të ngjashme pa pasur nevojë për përdorimin e await.
- Kompania HTTP undici është përditësuar në versionin 7.x, ku është rritur performanca dhe janë shtuar mundësi të reja HTTP.
- Mekanizmi V8 është përditësuar në versionin 13.6, i përdorur në Chromium 136. Nga mundësitë e reja në krahasim me botimin e kaluar të Node.js, vlen të përmendet mbështetje për tabelat e tipizuara Float16Array, menaxhimi manual i burimeve, metoda RegExp.escape (ekranimi i vargjeve për RegExp), treguesit 64-bit (Memory64) në WebAssembly, dhe metoda Error.isError.
- Menaxheri i paketave NPM është përditësuar në versionin 11.
- Mbështetja për kompiluesin MSVC është ndërprerë. Për kompilimin në platformën Windows, është e nevojshme të përdoret ClangCL.
Platforma Node.js mund të përdoret për mbështetje serverike të funksionimit të aplikacioneve Web, si dhe për krijimin e aplikacioneve të zakonshme klient-server. Për të zgjeruar funksionalitetin e aplikacioneve për Node.js, është përgatitur një koleksion i madh modulash, ku mund të gjenden module me implementime serverësh dhe klientë HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module për integrimin me framework-e të ndryshme web, trajtues të WebSocket dhe Ajax, lidhës për DB (MySQL, PostgreSQL, SQLite, MongoDB), motorë të templativëve, engine CSS, implementime të algoritmeve kriptografikë dhe sisteme autorizimi (OAuth), parserë XML.
Për të trajtuar një numër të madh kërkesash paralel, Node.js përdor një model të asinkron të ekzekutimit të kodit, i bazuar në përpunimin e ngjarjeve në modalitetin jo-bllokues dhe përcaktimin e trajtuesve të kthimit (callback handlers). Metodat për multi-përçimin e lidhjeve përfshijnë epoll, kqueue, /dev/poll dhe select. Për multi-përçimin e lidhjeve përdoret libra libuv, e cila është një shtresë mbi libev në sistemet Unix dhe mbi IOCP në Windows. Për krijimin e një grupi threads (thread pool) përdoret biblioteka libeio, ndërsa për të kryer kërkesat DNS në modalitetin jo-bllokues integrohet c-ares. Të gjitha thirrjet sistemike që shkaktojnë bllokim kryhen brenda grupit të threads dhe pastaj, si dhe trajtuesit e sinjalit, kalojnë rezultatin e punës së tyre përsëri përmes një kanali të paemëruar (pipe).
Ekzekutimi i kodit JavaScript sigurohet përmes përdorimit të motorit V8 të zhvilluar nga kompania Google (për më tepër, Microsoft zhvillon një variant të Node.js me motorin Chakra-Core). Në thelb, Node.js është i ngjashëm me framework-et Perl AnyEvent, Ruby Event Machine, Python Twisted dhe implementimin e ngjarjeve në Tcl, por cikli i përpunimit të ngjarjeve (event loop) në Node.js është i fshehur nga zhvilluesi dhe i ngjan përpunimit të ngjarjeve në një aplikacion web që punon në shfletues.
Burimi: opennet.ru
