Platforma JavaScript Node.js 22.0.0 heye

Node.js 22.0 hate berdan, platformek ji bo xebitandina sepanên torê di JavaScript de. Node.js 22.0 wekî şaxek piştevaniya dirêj-dirêj tête dabeş kirin, lê ev statû dê tenê di meha cotmehê de, piştî stabilîzasyonê, were destnîşankirin. Node.js 22.x dê heta 30ê Avrêl, 2027-ê were piştgirî kirin. Lênêrîna şaxê LTS-ya berê ya Node.js 20.x dê heya Nîsana 2026-an, û sala berî şaxê LTS-a paşîn 18.x heya Avrêl 2025-ê bidome. Şaxa qonaxa Node.js 21.x dê di 1ê Hezîrana 2024-an de were sekinandin.

Pêşveçûnên sereke:

  • Motora V8 di guhertoya 12.4-ê de, ku di Chromium 124-ê de tê bikar anîn, hatî nûve kirin. Di nav guheztinên ku li gorî şaxê Node.js 21-ê, ku motora V8 11.8-ê bikar tîne de, tê destnîşan kirin:
    • Piştgiriya dirêjkirina WasmGC, ku veguheztina bernameyên ku bi zimanên bernamekirinê yên ku berhevkarek çopê bikar tînin (Kotlin, PHP, Java, hwd.) hatine nivîsandin ji WebAssembly re hêsan dike. WasmGC cûreyên nû yên avahî û rêzikên ku dikarin veqetandina bîranîna ne-xêzik bikar bînin zêde dike.
    • Piştgiriya ji bo rêbaza Array.fromAsync(), ya ku bi asynkronî mînakek nû ya hêmanek Array-ê ya ku ji hêmanek mîna array, vegerandin an jî nesenkronîk hatî kopî kirin vedigerîne.
    • Piştgiriya ji bo rêbazên iterator wek .map, .filter, .find, .take, .drop, .forEach û .reduce.
    • Piştgiriya ji bo tiştek Set ku berhevokek nirxan diyar dike û rêbazên ku operasyonên berhevokê yên hevpar pêk tîne, wekî hevgirtin, yekbûn, cûdahî, û lêzêdekirinê pêşkêş dike.
  • Berhevkarê JIT-ê xweşbînker Maglev ji hêla xwerû ve hatî çalak kirin, ku armanc ew e ku zû koda makîneya performansa bilind ji bo koda JavaScript-a ku bi giranî hatî bikar anîn hilberîne. Çalakkirina Maglev dikare bi girîngî sepanên CLI-ya kurt-kurt ên ku operasyonên demdirêj pêk naynin bileztir bike, mînakî, dema temamkirina ceribandina Jetstrea% 7.5% kêm dibe û ceribandina Lezgîniyê% 5 kêm dibe.
  • Bi zêdekirina nirxa vebijarka highWaterMark ji 16 KB ber 65 KB ve (sînorê ku tomar lê tê tamponkirin diyar dike) xebata bi çeman re bileztir bûye. Guhertin dibe sedema zêdebûna mezaxtina bîranînê, ji ber vê yekê serîlêdanên ku ji bo xebitandina li ser RAM-a tixûbdar hatine çêkirin, dibe ku hewce bike ku bi banga setDefaultHighWaterMark() vegere nirxa kevn.
  • Performansa çêtir a fetch() û API-yên rêvekera ceribandinê bi çêkirina nimûneya AborSignal bi bandortir. Performansa API-yên têkildar bi xebata hevdemî ya bi pergalên pelan re çêtir bûye.
  • Taybetmendiyek ceribandinê hate peyda kirin da ku banga "require()" bikar bîne da ku modulên JavaScript ESM (Modulên ECMAScript) di moda hevdem de bar bike. Modulên ESM di gerokan de têne bikar anîn û li şûna modulên CommonJS yên taybetî yên Node.js têne bikar anîn. Ji bo barkirina bi "require()", pêdivî ye ku modula ESM di moda hevdem de (bêyî ku li asta jorîn li bendê bimîne) were darve kirin. Piştgirî bi ala "--experimental-require-module" ve tête çalak kirin.
  • Qabiliyeta ceribandinê zêde kir ku bi fermana "--run" nivîsarên ku di pelê pakêt.json de hatine diyarkirin "
  • Fermana "node -watch" bi pêkanîna moda temaşekirinê ve hatî veguheztin kategoriya îstîqrar, ku piştrast dike ku dema pelê hatî guheztin pêvajo ji nû ve dest pê dike (mînak, heke "node -watch index.js" were darve kirin, Dema ku index.js biguhere dê pêvajo bixweber ji nû ve were destpêkirin).
  • Pêkanîna xwemalî ya WebSocket API-ê hatî stabîl kirin, ku dihêle WebSocket di moda xerîdar de bêyî sazkirina girêdanên zêde were bikar anîn.
  • Piştgiriya qismî ji bo API-ya Navigator zêde kir.
  • Webstreams API piştgirî ji bo formata berhevkirina deflate-raw zêde kiriye.
  • Fonksiyonên glob û globSync li node:fsmodule zêde kirin ji bo lihevhatina nimûneyên rêyên pelan.
  • Desthilatdariya pêşkeftî ya stûnên IPv6 yên ku bi xeletî hatine mîheng kirin. Algorîtmaya Happy Eyeballs ji bo vegerandina bilez di bûyera pirsgirêkên bi operasyona IPv6 de bicîh kir.
  • Util API hate betal kirin.
  • Guhertoyên girêdayîbûnê yên nûvekirî: npm 10.5.1, libuv 1.48.0, simdutf 5.2.3, c-ares 1.28.1, zlib 1.3.0.1-motley-24c07df, simdjson heta 3.8.0, ada .2.7.7 û 6.6.0. .

Platforma Node.js dikare hem ji bo piştgiriya sepanên webê yên ji aliyê serverê û hem jî ji bo afirandina bernameyên torê yên standard ên ji aliyê xerîdar û serverê were bikar anîn. Ji bo berfirehkirina fonksiyona sepanên Node.js, berhevokek mezin ji modulan hatiye amadekirin, di nav de yên bi pêkanînên wan jî hene. pêşkêşkerên û xerîdarên HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modulên ji bo entegrasyonê bi çarçoveyên webê yên cûrbecûr, destgirên WebSocket û Ajax, girêdanên bi DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motorên şablonê, motorên CSS, pêkanînên algorîtmayên krîptografîk û pergalên destûrdayînê (OAuth), parserên XML.

Node.js ji bo birêvebirina hejmareke mezin ji daxwazên paralel, modelek darvekirina koda asynchronous li ser bingeha pêvajoya bûyera ne-astengker û pênasekirina hilgirên vegerê bikar tîne. Rêbazên piştgirîkirî yên ji bo girêdanên pirzimanî epoll, kqueue, / dev/poll, û hilbijartî hene. Ji bo pirrengkirina girêdanê, pirtûkxaneya libuv tê bikar anîn, ku pêvekek e libev li ser pergalên Unix û IOCP-ê li ser Windows-ê. Pirtûkxaneya libeio ji bo afirandina hewzek tîrêjê tê bikar anîn, û c-ares ji bo pêkanîna pirsên DNS-ê di moda ne-astengkirinê de tête yek kirin. Hemî bangên pergalê yên ku dibin sedema astengkirinê di hundurê hewza tîrê de têne darve kirin û dûv re, mîna hilgirên sînyalê, encama xebata xwe di nav boriyek bênav re derbas dikin.

Bicîhkirina koda JavaScript bi karanîna motora V8 ya ku ji hêla Google ve hatî pêşve xistin ve tête peyda kirin (digel vê yekê, Microsoft guhertoyek Node.js bi motora Chakra-Core ve pêşve dike). Di bingeha xwe de, Node.js dişibihe Perl AnyEvent, Ruby Event Machine, çarçoveyên Python Twisted û pêkanîna bûyeran di Tcl de, lê lûleya bûyerê di Node.js de ji pêşdebiran veşartî ye û dişibe pêvajoyek bûyerê di serîlêdana malperê de. di gerokê de dixebite.

Source: opennet.ru

Add a comment