Objavljena je Node.js 24.0.0, platforma za pokretanje mrežnih aplikacija u JavaScriptu. Node.js 24.0 je dodijeljen granama dugoročne podrške, ali taj će status biti dodijeljen tek u listopadu, nakon stabilizacije. Node.js 24.x bit će podržan do 30. travnja 2028. Prethodna LTS grana Node.js 22.x bit će podržana do travnja 2027., a prethodna LTS grana 20.x bit će podržana do travnja 2026. Održavanje LTS grane 18.x završit će 30. travnja 2025., a među-grana Node.js 23.x završit će 1. lipnja 2025.
Glavna poboljšanja:
- API AsyncLocalStorage prema zadanim postavkama koristi klasu AsyncContextFrame, koja je označena kao stabilna. AsyncContextFrame implementira učinkovitiji mehanizam za praćenje asinhronog konteksta, što može značajno poboljšati performanse.
- URLPattern API je sada dostupan kao globalni objekt koji se može koristiti bez eksplicitnog uvoza. URLPattern pruža mogućnost provjere odgovara li URL određenom uzorku, što se može koristiti, na primjer, za parsiranje poveznica.
- Mehanizam Permission Modela je poboljšan i stabiliziran, što vam omogućuje ograničavanje pristupa određenim resursima tijekom izvršavanja (na primjer, možete zabraniti stvaranje podređenih procesa, ograničiti pristup pisanju ili čitanju određenim dijelovima FS-a, onemogućiti dodatke). Umjesto eksperimentalne zastavice "--experimental-permission", sada se za omogućavanje Modela dozvola može koristiti zastavica "--permission".
- Proširene su mogućnosti modula node:test (test_runner), dizajniranog za stvaranje i pokretanje testova u JavaScriptu koji vraćaju rezultate u TAP (Test Anything Protocol) formatu. Modul sada automatski čeka završetak ugniježđenih testova bez potrebe za korištenjem await.
- HTTP klijent undici ažuriran je na verziju 7.x, što poboljšava performanse i dodaje podršku za nove HTTP značajke.
- V8 engine je ažuriran na verziju 13.6, koja se koristi u Chromiumu 136. Nove značajke u usporedbi s prethodnim Node.js izdanjem uključuju podršku za tipizirane Float16Array nizove, ručno upravljanje resursima, metodu RegExp.escape (izbjegavanje stringova za RegExp), 64-bitne pokazivače (Memory64) u WebAssemblyju i metodu Error.isError.
- NPM upravitelj paketa ažuriran je na verziju 11.
- Podrška za MSVC kompajler je ukinuta. Za kompajliranje na platformi Windows Morate koristiti ClangCL.
Node.js platforma može se koristiti i za podršku web aplikacija na strani poslužitelja i za izradu standardnih mrežnih programa na strani klijenta i poslužitelja. Za proširenje funkcionalnosti Node.js aplikacija pripremljena je velika kolekcija modula, uključujući i one s implementacijama. poslužitelji i klijenti HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli za integraciju s raznim web okvirima, WebSocket i Ajax rukovatelji, konektori za DBMS (MySQL, PostgreSQL, SQLite, MongoDB), predlošci, CSS mehanizmi, implementacije kriptografskih algoritama i autorizacijskih sustava (OAuth), XML parseri.
Za obradu velikog broja istovremenih zahtjeva, Node.js koristi asinkroni model izvršavanja koda temeljen na obradi događaja bez blokiranja i rukovateljima povratnim pozivima. Podržane metode multipleksiranja veza uključuju epoll, kqueue, /dev/poll i select. Multipleksiranje veza koristi biblioteku libuv, koja je nadogradnja na libev na Unix sustavima i IOCP na WindowsBiblioteka libeio koristi se za stvaranje skupa niti, a c-ares je integriran za izvršavanje DNS upita u načinu rada bez blokiranja. Svi blokirajući sistemski pozivi izvršavaju se unutar skupa niti, a zatim, poput obrađivača signala, vraćaju svoje rezultate putem neimenovane cijevi.
Izvršenje JavaScript koda osigurano je korištenjem V8 motora koji je razvio Google (pored toga, Microsoft razvija verziju Node.js s Chakra-Core motorom). U svojoj srži, Node.js je sličan okvirima Perl AnyEvent, Ruby Event Machine, Python Twisted i implementaciji događaja u Tcl-u, ali je petlja događaja u Node.js skrivena od programera i nalikuje obradi događaja u web aplikaciji radi u pregledniku.
Izvor: opennet.ru
