Kjo është lëshuar Node.js 24.0.0, platforma për ekzekutimin e aplikacioneve rrjetësore në gjuhën JavaScript. Node.js 24.0 i përket degëve me mbështetje afatgjatë, por ky status do t'i jepet vetëm në tetor, pas stabilizimit. Mbështetje për Node.js 24.x do të ofrohet deri më 30 prill 2028. Mbështetje për degën e mëparshme LTS Node.js 22.x do të vazhdojë deri në prillin e vitit 2027, ndërsa për degën e kaluar LTS 20.x deri në prillin e vitit 2026. Mbështetje për degën LTS 18.x u ndërpre më 30 prill 2025, ndërsa mbështetje për degën ndërmjetëse Node.js 23.x do të ndërpritet më 1 qershor 2025.
Përmirësimet kryesore:
- Në API AsyncLocalStorage, klasi AsyncContextFrame tani është angazhuar si i stabilizuar. AsyncContextFrame implementon një mekanizëm më efikas për ndjekjen e kontekstit asinkron, që lejon një rritje të dukshme në performancë.
- API URLPattern tani është në dispozicion si një objekt global, që mund të përdoret pa u importuar qartë. URLPattern ofron mundësi për të verifikuar përputhjen e URL me një model të caktuar, që mund të përdoret për të analizuar lidhjet.
- Mekanizmi i Modelit tĂ« Lejes Ă«shtĂ« pĂ«rmirĂ«suar dhe stabilizuar, duke lejuar kufizimin e qasshmĂ«risĂ« nĂ« resurse tĂ« caktuara gjatĂ« ekzekutimit (pĂ«r shembull, mund tĂ« ndalohet krijimi i proceseve fĂ«mijĂ«, kufizimi i qasshmĂ«risĂ« pĂ«r tĂ« shkruar ose lexuar nĂ« pjesĂ« tĂ« caktuara tĂ« sistemit tĂ« skedarĂ«ve, ndalimi i shtesave). NĂ« vend tĂ« flamurit eksperimental ââexperimental-permissionâ pĂ«r aktivizimin e Modelit tĂ« Lejes, tani mund tĂ« pĂ«rdoret flamuri ââpermissionâ.
- Kapacitetet e modulit node:test (test_runner), i destinuar për krijimin dhe ekzekutimin e testeve në gjuhën JavaScript, janë zgjeruar, duke kthyer rezultatet në formatin TAP (Test Anything Protocol). Moduli tani pret automatikisht për përfundimin e testeve të brendshme pa nevojën për të përdorur await.
- Klienti HTTP undici është azhurnuar në degën 7.x, ku është përmirësuar performanca dhe janë shtuar mbështetje për mundësi të reja HTTP.
- Motorri V8 është azhurnuar në versionin 13.6, i përdorur në Chromium 136. Disa nga mundësitë e reja krahasuar me lëshimin e kaluar të Node.js përfshijnë mbështetje për arrays të tipit Float16Array, menaxhimin manual të burimeve, metodën RegExp.escape (ekranimin e vargjeve për RegExp), tregues 64-bit (Memory64) në WebAssembly dhe metodën Error.isError.
- Menaxher i paketave NPM është azhurnuar në versionin 11.
- Mbështetja për kompilatorin MSVC është ndërprerë. Për kompilim në platformën Windows, është e nevojshme të përdoret ClangCL.
Platforma Node.js mund të përdoret si për mbështetje të serverëve të aplikacioneve Web, ashtu edhe për të krijuar programe të zakonshme klients-server të rrjeteve. Për të zgjeruar funksionalitetin e aplikacioneve për Node.js është përgatitur një koleksion i madh modulash, ku mund të gjeni module me realizim. serverëve dhe klientë HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module për integrim me korniza të ndryshme web, procesorë WebSocket dhe Ajax, lidhës për DB (MySQL, PostgreSQL, SQLite, MongoDB), motorë për modelim, CSS, realizime të algoritmeve kriptografikë dhe sistemeve të autorizimit (OAuth), parserë XML.
Për të trajtuar një numër të madh kërkesash paralelisht, Node.js përdor një model asinkron të ekzekutimit të kodit, i bazuar në përpunimin e ngjarjeve në modalitetin e pa bllokimit dhe përcaktimin e menaxherëve të kthimit (callbacks). Metoda të tilla si epoll, kqueue, /dev/poll dhe select mbështeten për shumëfishimin e lidhjeve. Për këtë, përdoret biblioteka libuv, që është një shtresë mbi libev në sistemet Unix dhe mbi IOCP në Windows. Biblioteka libeio përdoret për të krijuar një grup (thread pool), dhe c-ares është integruar për të kryer kërkesat DNS në modalitetin e pa bllokimit. Të gjitha thirrjet sistemike që shkaktojnë bllokim ekzekutohen brenda grupit dhe pastaj, si menaxherët e sinjaleve, kthejnë rezultatin e punës së tyre përmes një kanali të paemëruar (pipe).
Ekzekutimi i kodit JavaScript sigurohet përmes aktivizimit të motorit V8 të zhvilluar nga Google (për më tepër, Microsoft po zhvillon një variant 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ë funksionon në shfletues.
Burimi: opennet.ru
