Node.js 26.0.0, plattformen for kjøring av nettverksapplikasjoner skrevet i JavaScript, har blitt lansert. Node.js 26.0 er klassifisert som en versjon med langtidssupport, men denne statusen vil bli tildelt først i oktober, etter stabilisering. Støtten for Node.js 26.x vil bli opprettholdt frem til mai 2029. Støtten for den tidligere LTS-grenen Node.js 24.x vil vare til 30. april 2028, mens den før det, 22.x, vil bli støttet til 30. april 2027. Støtten for LTS-grenen 20.x ble avsluttet 30. april 2026, og den midlertidige grenen Node.js 25.x vil bli avsluttet 1. juni 2026.
Hovedforbedringer:
- API-en Temporal er nå aktivert som standard og tilbyr et alternativt sett med metoder for arbeid med datoer og tid. API-en gjør det mulig å manipulere datoer med og uten hensyn til tidssoner, konvertere tid, formatere utdata og utføre aritmetiske operasjoner med tid. Tid kan representeres i en tidssoneuavhengig form (Temporal.PlainDate, Temporal.PlainTime, Temporal.PlainDateTime), med tilknytning til tidssone (Temporal.ZonedDateTime) og i epokebasert format (Temporal.Instant — antall nanosekunder siden 1. januar 1970).
- V8-motoren er oppdatert til versjon 14.6, som brukes i Chromium 146. Blant forbedringene i forhold til den forrige utgivelsen av Node.js er muligheten for å kombinere flere iteratorer til én med metoden Iterator.concat(), samt implementeringen av spesifikasjonen "upsert" for å forenkle arbeidet med samlinger av nøkkel-/verdi-par i JavaScript-objekter som Map og WeakMap.
- HTTP-klienten undici er oppdatert til versjon 8.x.
- Metoden http.Server.prototype.writeHeader() er fjernet, og i stedet bør http.Server.prototype.writeHead() brukes.
Node.js-plattformen kan brukes både for serveradministrasjon av webapplikasjoner og for å lage vanlige klient- og serverside nettverksprogrammer. For å utvide funksjonaliteten til applikasjoner for Node.js er det utarbeidet en stor samling av moduler, der du kan finne moduler med implementasjoner servere og klienter for HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduler for integrasjon med ulike web-rammeverk, håndterere for WebSocket og Ajax, forbindelser til DBMS (MySQL, PostgreSQL, SQLite, MongoDB), malmotorer, CSS-motorer, implementasjoner av kryptografiske algoritmer og autorisasjonssystemer (OAuth), XML-parsere.
For processing a large number of parallel requests, Node.js utilizes an asynchronous model of code execution based on event-driven non-blocking I/O and the definition of callback handlers. Methods such as epoll, kqueue, /dev/poll, and select are supported for connection multiplexing. The libuv library, which builds on libev in Unix systems and IOCP in Windows, is used for connection multiplexing. A thread pool is created using the libeio library, and non-blocking DNS requests are integrated with c-ares. All system calls that cause blocking are executed within the thread pool and then return their results via an unnamed pipe, just like signal handlers.
The execution of JavaScript code is ensured through the use of the V8 engine developed by Google. Essentially, Node.js is similar to frameworks like Perl AnyEvent, Ruby Event Machine, Python asyncio, and the Tcl event implementation, but the event loop in Node.js is abstracted from the developer and resembles event handling in a web application running in a browser.
Kilde: opennet.ru
