Node.js 26.0.0 har släppts, en plattform för att köra nätverksapplikationer i JavaScript. Node.js 26.0 tillhör grenar med långsiktigt stöd, men denna status kommer att tilldelas först i oktober efter stabilisering. Stödet för Node.js 26.x kommer att fortgå till maj 2029. Tidigare LTS-grenen Node.js 24.x kommer att stödjas till den 30 april 2028, och den föregående 22.x till den 30 april 2027. Stödet för LTS-grenen 20.x upphörde den 30 april 2026, och för den kortvariga grenen Node.js 25.x upphör det den 1 juni 2026.
Huvudsakliga förbättringar:
- API Temporal är nu aktiverat som standard och erbjuder ett alternativt uppsättning metoder för att hantera datum och tid. API:t tillåter manipulation av datum med och utan hänsyn till tidszoner, tidskonvertering, formatering av utdata och aritmetiska operationer med tid. Tid kan anges i en tidszonoberoende representation (Temporal.PlainDate, Temporal.PlainTime, Temporal.PlainDateTime), med koppling till en tidszon (Temporal.ZonedDateTime) och i epoch-representation (Temporal.Instant — antal nanosekunder sedan den 1 januari 1970).
- V8-motorn har uppdaterats till version 14.6, som används i Chromium 146. Förbättringarna jämfört med den senaste Node.js-utfärdandet inkluderar möjligheten att kombinera flera iteratorer till en med metoden Iterator.concat(), samt implementeringen av specifikationen 'upsert' för att förenkla arbetet med nyckel/värde-samlingar i JavaScript-objekten Map och WeakMap.
- HTTP-klienten undici har uppdaterats till version 8.x.
- Metoden http.Server.prototype.writeHeader() har tagits bort, istället bör http.Server.prototype.writeHead() användas.
Node.js-plattformen kan användas både för serverhantering av webapplikationer och för att skapa vanliga klient- och servernätverksprogram. För att utöka funktionaliteten för Node.js-applikationer har en stor samling moduler tagits fram, där man kan finna moduler med implementeringar. servrar och kunder för HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduler för integration med olika webbramverk, WebSocket- och Ajax-hanterare, anslutare till databaser (MySQL, PostgreSQL, SQLite, MongoDB), mallmotorer, CSS-motorer, implementationer av kryptalgoritmer och auktorisationssystem (OAuth), XML-parserare.
För att hantera ett stort antal parallella förfrågningar använder Node.js en asynkron kodexekveringsmodell baserad på händelsebehandling i icke-blockerande läge och definiering av callback-hanterare. Metoder som epoll, kqueue, /dev/poll och select stöds som sätt att multiplexera anslutningar. För multiplexering av anslutningar används biblioteket libuv, som är ett lager över libev i Unix-system och över IOCP i Windows. För att skapa en trådpool används biblioteket libeio, och för att utföra DNS-förfrågningar i icke-blockerande läge är c-ares integrerat. Alla systemanrop som orsakar blockering utförs inom trådpoolen och överför sedan, liksom signalhanterare, resultaten av sitt arbete tillbaka via en namnlös kanal (pipe).
Körningen av JavaScript-kod möjliggörs genom användning av den av Google utvecklade V8-motorn. I grunden liknar Node.js ramverken Perl AnyEvent, Ruby Event Machine, Python asyncio och händelsehantering i Tcl, men event loop i Node.js är dold för utvecklaren och liknar händelsehantering i ett webbaserat program som körs i en webbläsare.
Källa: opennet.ru
