Objavljen je Node.js 26.0.0, platforma za izvođenje mrežnih aplikacija na JavaScriptu. Node.js 26.0 je klasificiran kao verzija s dugoročnom podrškom, ali će ovaj status biti dodijeljen tek u listopadu, nakon stabilizacije. Podrška za Node.js 26.x će trajati do svibnja 2029. godine. Održavanje prethodne LTS verzije Node.js 24.x će trajati do 30. travnja 2028. godine, dok će za verziju 22.x trajati do 30. travnja 2027. godine. Održavanje LTS verzije 20.x je prekinuto 30. travnja 2026. godine, a podrška za verziju Node.js 25.x će prestati 1. lipnja 2026. godine.
Glavna poboljšanja:
- API Temporal je uključen kao zadani, nudeći alternativni skup metoda za rad s datumima i vremenom. API omogućuje manipulaciju datumima uzimajući u obzir i bez obzira na vremenske zone, konvertiranje vremena, formatiranje izlaza i izvođenje aritmetičkih operacija s vremenom. Vrijeme se može zadati u neovisnom prikazu od vremenske zone (Temporal.PlainDate, Temporal.PlainTime, Temporal.PlainDateTime), vezano uz vremensku zonu (Temporal.ZonedDateTime) i u epohalnom prikazu (Temporal.Instant — broj nanosekundi od 1. siječnja 1970. godine).
- V8 motor je ažuriran na verziju 14.6, koja se koristi u Chromium 146. Među poboljšanjima u odnosu na prethodno izdanje Node.js ističe se mogućnost spajanja više iteratora u jedan pomoću metode Iterator.concat(), kao i implementacija specifikacije «upsert» za pojednostavljenje rada s kolekcijama parova ključ/vrijednost u JavaScript objektima Map i WeakMap.
- HTTP klijent undici je ažuriran na verziju 8.x.
- Metoda http.Server.prototype.writeHeader() je uklonjena, umjesto koje treba koristiti http.Server.prototype.writeHead().
Platforma Node.js može se koristiti kako za poslužiteljsko održavanje web aplikacija, tako i za izradu uobičajenih klijentskih i poslužiteljskih mrežnih programa. Za proširenje funkcionalnosti aplikacija za Node.js pripremljena je velika kolekcija modula, u kojoj se mogu pronaći moduli s implementacijama poslužitelja i klijenata HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli za integraciju s raznim web okvirima, obrada WebSocket i Ajax, konektori za baze podataka (MySQL, PostgreSQL, SQLite, MongoDB), predlošci, CSS motori, implementacije kriptoalgoritama i sustava autentifikacije (OAuth), XML parseri.
Za obradu velikog broja paralelnih zahtjeva, Node.js koristi asinkroni model pokretanja koda, temeljen na obradi događaja u neblokirajućem režimu i definiranim callback-obradnicima. Kao metode multiplexiranja veza podržani su epoll, kqueue, /dev/poll i select. Za multiplexiranje veza koristi se knjižnica libuv, koja je nadogradnja na libev u Unix sustavima i IOCP u Windowsu. Za stvaranje skupa niti (thread pool) koristi se knjižnica libeio, dok je za izvršavanje DNS-zahtjeva u neblokirajućem režimu integrirana c-ares. Sve sistemske pozive koji izazivaju blokiranje izvršavaju unutar skupa niti, a zatim, baš kao i obrada signala, rezultat svog rada vraćaju kroz nenazvanu cijev (pipe).
Izvršenje JavaScript koda omogućuje se putem pokretanja motora V8, koji je razvila kompanija Google. U osnovi, Node.js je sličan okvirima Perl AnyEvent, Ruby Event Machine, Python asyncio i implementaciji događaja u Tcl, ali petlja obrade događaja (event loop) u Node.js je skrivena od programera i podsjeća na obradu događaja u web aplikaciji koja radi u pregledniku.
Izvor: opennet.ru
