IznÄcis Node.js 24.0.0, platforma tÄ«mekļa lietojumprogrammu izpildei JavaScript valodÄ. Node.js 24.0 ir pieskaitÄ«ta ilga atbalsta sadaļai, bet Å”is statuss tiks pieŔķirts tikai oktobrÄ«, pÄc stabilizÄcijas procesa pabeigÅ”anas. Node.js 24.x atbalsts tiks nodroÅ”inÄts lÄ«dz 2028. gada 30. aprÄ«lim. IepriekÅ”ÄjÄ LTS versijas Node.js 22.x apkalpoÅ”ana turpinÄsies lÄ«dz 2027. gada aprÄ«lim, bet pirms tam LTS versijas 20.x lÄ«dz 2026. gada aprÄ«lim. LTS versijas 18.x apkalpoÅ”ana beigsies 2025. gada 30. aprÄ«lÄ«, bet starpposma versijas Node.js 23.x atbalsts beigsies 2025. gada 1. jÅ«nijÄ.
GalvenÄs uzlabojumi:
- AsyncLocalStorage API pÄc noklusÄjuma izmanto stabilizÄtu AsyncContextFrame klasi. AsyncContextFrame Ä«steno efektÄ«vÄku asynchronskÄ konteksta izsekoÅ”anas mehÄnismu, kas ļauj bÅ«tiski uzlabot veiktspÄju.
- URLPattern API tagad ir pieejams kÄ globÄlais objekts, ko var izmantot bez eksplicitÄs importÄÅ”anas. URLPattern nodroÅ”ina iespÄjas pÄrbaudÄ«t URL atbilstÄ«bu konkrÄtam paraugiem, kas, piemÄram, var tikt izmantots saiÅ”u parsÄÅ”anai.
- Uzlabota un stabilizÄta Atļauju modeļa mehÄnika, kas ļauj ierobežot piekļuvi noteiktiem resursiem izpildes laikÄ (piemÄram, var aizliegt bÄrnu procesu izveidi, ierobežot rakstīŔanas vai lasīŔanas piekļuvi konkrÄtÄm failu sistÄmas daļÄm, izslÄgt paplaÅ”inÄjumus). TÄ vietÄ, lai izmantotu eksperimentÄlo karogu Ā«āexperimental-permissionĀ» Atļauju modeļa iekļauÅ”anai, tagad var izmantot karogu Ā«āpermissionĀ».
- PaplaÅ”inÄtas node:test (test_runner) moduļa iespÄjas, kas paredzÄts testu izveidei un izpildei JavaScript valodÄ, atgriežot rezultÄtu TAP (Test Anything Protocol) formÄtÄ. Modulis tagad automÄtiski gaida, kamÄr beidzas iegultie testi bez nepiecieÅ”amÄ«bas izmantot await.
- HTTP klients undici atjauninÄts lÄ«dz 7.x versijai, kurÄ uzlabota veiktspÄja un pievienota jaunu HTTP funkciju atbalsts.
- V8 dzinÄjs atjauninÄts lÄ«dz 13.6 versijai, kas tiek izmantota Chromium 136. No jaunajÄm iespÄjÄm salÄ«dzinÄjumÄ ar iepriekÅ”Äjo Node.js izlaidumu ir atzÄ«mÄta atbalsts tipizÄtajiem masÄ«viem Float16Array, manuÄlÄ resursu pÄrvaldÄ«ba, RegExp.escape metode (virkÅu ekarÄÅ”ana RegExp), 64-bit pÄrrakstīŔanas rÄdÄ«tÄji (Memory64) WebAssembly un Error.isError metode.
- Kopienas pakotÅu pÄrvaldnieks NPM atjauninÄts lÄ«dz versijai 11.
- Atbalsts MSVC kompilatoram ir pÄrtraukts. Lai kompilÄtu Windows platformÄ, ir jÄizmanto ClangCL.
Node.js platformu var izmantot gan servera puses tÄ«mekļa lietojumprogrammu atbalstam, gan parasto klientu un serveru tÄ«kla programmu izveidei. Lai paplaÅ”inÄtu Node.js lietojumprogrammu funkcionalitÄti, ir sagatavota liela moduļu kolekcija, kas ietver moduļus ar realizÄciju serveriem un HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 klientiem, moduļiem integrÄÅ”anai ar dažÄdiem tÄ«mekļa ietvariem, WebSocket un Ajax apstrÄdÄtÄjiem, datubÄzu (MySQL, PostgreSQL, SQLite, MongoDB) savienotÄjiem, veidÅu motorus, CSS dzinÄjus, kriptovalÅ«tu algoritmu realizÄcijas un autorizÄcijas sistÄmas (OAuth), XML parsÄtÄjus.
Lai apstrÄdÄtu lielu skaitu vienlaicÄ«gu pieprasÄ«jumu, Node.js izmanto asinhrono koda izpildes modeli, balstoties uz notikumu apstrÄdi bez bloÄ·ÄÅ”anas un callback apstrÄdÄtÄju definÄÅ”anu. Savienojumu multiplikÄcijai tiek atbalstÄ«ti tÄdi paÅÄmieni kÄ epoll, kqueue, /dev/poll un select. Savienojumu multiplikÄcijai tiek izmantota libuv bibliotÄka, kas ir virs libev sistÄmÄm Unix un IOCP Windows. Thread pool (vÄ«tolietotÄju baseins) tiek izveidots, izmantojot libeio bibliotÄku, savukÄrt DNS pieprasÄ«jumu veikÅ”anai bez bloÄ·ÄÅ”anas ir integrÄta c-ares. Visas sistÄmas izsaukums, kas izraisa bloÄ·ÄÅ”anu, tiek veikti iekÅ” mpulÄ un pÄc tam, tÄpat kÄ signÄlu apstrÄdÄtÄji, pÄrsÅ«ta rezultÄtu atpakaļ, izmantojot nenosaukto kanÄlu (pipe).
JavaScript koda izpildi nodroÅ”ina Google izstrÄdÄtais V8 dzinÄjs (papildus Microsoft attÄ«sta Node.js versiju ar Chakra-Core dzinÄju). PatiesÄ«bÄ Node.js ir lÄ«dzÄ«gs Perl AnyEvent, Ruby Event Machine, Python Twisted un Tcl notikumu realizÄcijai, taÄu Node.js notikumu apstrÄdes cikls (event loop) ir slÄpts no izstrÄdÄtÄja un atgÄdina notikumu apstrÄdi tÄ«mekļa lietojumprogrammÄ, kas darbojas pÄrlÅ«kprogrammÄ.
Avots: opennet.lv
