LĂ«shimi i Node.js 25.0.0, плаŃŃĐŸŃĐŒĂ« pĂ«r ekzekutimin e aplikacioneve rrjetore nĂ« gjuhĂ«n JavaScript, ka ndodhur. Node.js 25.0 i pĂ«rket degĂ«ve ndĂ«rmjetĂ«se, mbĂ«shtetje pĂ«r tĂ« cilat do tĂ« ofrohet pĂ«r 7 muaj (deri nĂ« qershor 2026). NĂ« ditĂ«t nĂ« vazhdim do tĂ« pĂ«rfundojĂ« stabilizimi i degĂ«s Node.js 24, e cila nĂ« fund tĂ« tetorit do tĂ« marrĂ« statusin LTS dhe do tĂ« mbĂ«shtetet deri nĂ« prill 2028. MbĂ«shtetje pĂ«r degĂ«t e kaluara LTS tĂ« Node.js 22.x dhe 20.x do tĂ« vazhdojĂ« deri nĂ« prill 2027 dhe 2026 pĂ«rkatĂ«sisht.
Përmirësimet kryesore:
- Motori V8 është azhurnuar në versionin 14.1, i përdorur në Chromium 141. Nga përmirësimet në krahasim me versionin e kaluar të Node.js është vënë re një rritje e konsiderueshme e performancës së metodës JSON.stringify, optimizimi i WebAssembly dhe JIT, realizimi i metodave për konvertimin midis Uint8Array dhe të dhënave në formatin base64 ose përfaqësimin hexadeçimal.
- NĂ« mekanizmin Permission Model, i cili lejon kufizimin e aksesit nĂ« burime tĂ« caktuara gjatĂ« ekzekutimit, Ă«shtĂ« shtuar opsioni «âallow-net» pĂ«r tĂ« siguruar aksesin rrjetor (nĂ«se opsioni «âallow-net» nuk Ă«shtĂ« specifikuar, ekzekutimi i Node.js nĂ« modalitetin «âpermission» do tĂ« japĂ« njĂ« gabim ERR_ACCESS_DENIED gjatĂ« pĂ«rpjekjes pĂ«r tĂ« kryer operacione rrjetore).
- Aktivizuar si parazgjedhje e përputhshme me shfletuesit API Web Storage, e cila është e destinuar për ruajtjen e dhënave në formatin çelës/ushedhë për një kohë të gjatë (klasa localStorage) ose një kohë të përkohshme (klasa sessionStorage). Etiketa e zhvillimit eksperimental është hequr nga API Web Storage.
- Klas ErrorEvent është përfshirë në kategorinë e burimeve globale (mund të përdoret pa import të dukshëm), duke ofruar një ndërfaqe të përputhshme me shfletuesit për trajtimin e ngjarjeve me informacion rreth gabimeve.
- Për WebAssembly është përfshirë mbështetje për API JSPI (JavaScript Promise Integration), e cila lejon thirrjen e API-ve asinkrone Web nga kodi i ekzekutuar në mënyrë të renditur, i kompiluar në WebAssembly.
- Opsioni «NODE_COMPILE_CACHE_RELATIVE_PATH» është shtuar për funksionimin e përshtatshëm me cache të objekteve të kompiluar. Në këtë modalitet, hash-et për identifikimin e objekteve llogariten duke përdorur rrugë relative ndaj skedarëve, duke lejuar që përmbajtja e katalogut me kodin të zhvendoset dhe përfshihet me cache.
- ĂshtĂ« shtuar mundĂ«sia pĂ«r profilizimin e ngarkesĂ«s sĂ« CPU.
- Menaxheri i paketave NPM është azhurnuar në versionin 11.6.2.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r Python 3.14.
- Si versione minimale të mbështetur janë deklaruar Clang 19 dhe Xcode 16.4.
- Mbështetje për objektin SlowBuffer është ndërprerë, pasi u shpall e vjetruar për shkak të problemeve të mundshme të sigurisë. Në vend të SlowBuffer, duhet të përdoret metoda Buffer.allocUnsafeSlow().
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
