Node.js 24.0.0, një platformë për ekzekutimin e aplikacioneve të rrjetit në JavaScript, është publikuar. Node.js 24.0 i është caktuar degëve të mbështetjes afatgjatë, por ky status do t'i caktohet vetëm në tetor, pas stabilizimit. Node.js 24.x do të mbështetet deri më 30 prill 2028. Dega e mëparshme LTS, Node.js 22.x, do të mbështetet deri në prill 2027, dhe dega e mëparshme LTS 20.x do të mbështetet deri në prill 2026. Mirëmbajtja e degës 18.x LTS do të përfundojë më 30 prill 2025, dhe dega e ndërmjetme Node.js 23.x do të përfundojë më 1 qershor 2025.
Përmirësimet kryesore:
- API-ja AsyncLocalStorage përdor klasën AsyncContextFrame si parazgjedhje, e cila është shënuar si e qëndrueshme. AsyncContextFrame zbaton një mekanizëm më efikas për gjurmimin e kontekstit asinkron, i cili mund të përmirësojë ndjeshëm performancën.
- API-ja URLPattern tani është e disponueshme si një objekt global që mund të përdoret pa importim të qartë. URLPattern ofron mundësinë për të kontrolluar nëse një URL përputhet me një model specifik, i cili mund të përdoret, për shembull, për të analizuar lidhjet.
- Mekanizmi i Modelit të Lejeve është përmirësuar dhe stabilizuar, duke ju lejuar të kufizoni aksesin në burime të caktuara gjatë ekzekutimit (për shembull, mund të ndaloni krijimin e proceseve të fëmijëve, të kufizoni aksesin në shkrim ose lexim në pjesë të caktuara të sistemit operativ, të çaktivizoni shtesat). Në vend të flamurit eksperimental "--permission-of-experimental", flamuri "--permission" tani mund të përdoret për të aktivizuar Modelin e Lejeve.
- Aftësitë e modulit node:test (test_runner), i projektuar për të krijuar dhe ekzekutuar teste në JavaScript që kthejnë rezultate në formatin TAP (Test Anything Protocol), janë zgjeruar. Moduli tani pret automatikisht që testet e ndërthurura të përfundojnë pa pasur nevojë të përdorë "wait".
- Klienti HTTP undici është përditësuar në degën 7.x, e cila përmirëson performancën dhe shton mbështetje për veçoritë e reja HTTP.
- Motori V8 është përditësuar në versionin 13.6, i përdorur në Chromium 136. Karakteristikat e reja krahasuar me versionin e mëparshëm të Node.js përfshijnë mbështetje për vargjet Float16Array të tipizuara, menaxhimin manual të burimeve, metodën RegExp.escape (vargjet e escape për RegExp), treguesit 64-bit (Memory64) në WebAssembly dhe metodën Error.isError.
- Menaxheri i paketave NPM është përditësuar në versionin 11.
- Mbështetja për kompiluesin MSVC është ndërprerë. Për kompilim në platformë Windows Duhet të përdorni ClangCL.
Platforma Node.js mund të përdoret si për mbështetjen e aplikacioneve web nga ana e serverit, ashtu edhe për krijimin e programeve standarde të rrjetit nga ana e klientit dhe serverit. Për të zgjeruar funksionalitetin e aplikacioneve Node.js, është përgatitur një koleksion i madh modulesh, duke përfshirë ato me implementime. serverat dhe klientë të HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module për integrim me korniza të ndryshme web, trajtues WebSocket dhe Ajax, lidhës për DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motorë shabllonësh, motorë CSS, implementime të algoritmeve kriptografike dhe sistemeve të autorizimit (OAuth), analizues XML.
Për të trajtuar një numër të madh kërkesash të njëkohshme, Node.js përdor një model ekzekutimi asinkron të kodit bazuar në përpunimin e ngjarjeve jo-bllokuese dhe trajtuesit e thirrjeve të kthimit. Metodat e multipleksimit të lidhjeve të mbështetura përfshijnë epoll, kqueue, /dev/poll dhe select. Multipleksimi i lidhjeve përdor bibliotekën libuv, e cila është një ndërtim mbi libev në sistemet Unix dhe IOCP në WindowsBiblioteka libeio përdoret për të krijuar një grup thread-esh, dhe c-ares është i integruar për të kryer pyetje DNS në modalitetin jo-bllokues. Të gjitha thirrjet e sistemit bllokues ekzekutohen brenda grupit të thread-eve dhe më pas, ashtu si trajtuesit e sinjaleve, kthejnë rezultatet e tyre nëpërmjet një tubi pa emër.
Ekzekutimi i kodit JavaScript sigurohet përmes përdorimit të motorit V8 të zhvilluar nga Google (përveç kësaj, Microsoft po zhvillon një version të Node.js me motorin Chakra-Core). Në thelbin e tij, Node.js është i ngjashëm me kornizat Perl AnyEvent, Ruby Event Machine, Python Twisted dhe zbatimin e ngjarjeve në Tcl, por cikli i ngjarjeve në Node.js është i fshehur nga zhvilluesi dhe i ngjan përpunimit të ngjarjeve në një aplikacion ueb funksionon në shfletues.
Burimi: opennet.ru
