Platforma JavaScript Node.js 22.0.0 është në dispozicion.

Lëshimi i Node.js 22.0, platformës për ekzekutimin e aplikacioneve rrjetore në gjuhën JavaScript, u bë realitet. Node.js 22.0 është kategorizuar si version me mbështetje afatgjatë, por statusi do të konfirmohet vetëm në tetor, pas stabilizimit. Mbështetja për Node.js 22.x do të vazhdojë deri më 30 prill 2027. Mbështetja për versionin e mëparshëm LTS, Node.js 20.x do të vazhdojë deri në prill 2026, ndërsa për versionin e kaluar LTS 18.x deri në prill 2025. Mbështetja për versionin ndërmjetës Node.js 21.x do të ndalet më 1 qershor 2024.

Përmirësimet kryesore:

  • Motori V8 Ă«shtĂ« azhurnuar nĂ« versionin 12.4, i pĂ«rdorur nĂ« Chromium 124. Ndryshimet e krahasuara me versionin Node.js 21, i cili pĂ«rdorte motorin V8 11.8, pĂ«rfshijnĂ«:
    • MbĂ«shtetje pĂ«r zgjerimin WasmGC, i cili lehtĂ«son portimin e programeve nĂ« WebAssembly qĂ« janĂ« shkruar nĂ« gjuhĂ« programimi qĂ« pĂ«rdorin mbledhĂ«s plehrash (Kotlin, PHP, Java etj.). WasmGC shton lloje tĂ« reja strukturash dhe vargjesh, pĂ«r tĂ« cilat mund tĂ« aplikohet alokimi jo-linear i memories.
    • MbĂ«shtetje pĂ«r metodĂ«n Array.fromAsync(), e cila nĂ« modalitetin asinkron kthen njĂ« instancĂ« tĂ« re tĂ« objektit Array, e kopjuar nga objektet qĂ« i ngjajnĂ« vargjeve, tĂ« enumeruara (iterable) ose tĂ« enumeruara asinkronisht (async iterable).
    • MbĂ«shtetje pĂ«r metoda tĂ« punĂ«s me iteratorĂ«t, si .map, .filter, .find, .take, .drop, .forEach dhe .reduce.
    • MbĂ«shtetje pĂ«r objektin Set, qĂ« pĂ«rcakton njĂ« koleksion vlerash dhe ofron metoda pĂ«r implementimin e operacioneve tipike mbi shumĂ«si, si prerje, bashkime, diferencĂ« dhe plotĂ«sim.
  • Optimizuesi i JIT, Maglev, Ă«shtĂ« aktivizuar si parazgjedhje, me fokus nĂ« gjenerimin e shpejtĂ« tĂ« kodit tĂ« lartĂ« performant pĂ«r kodin JavaScript qĂ« pĂ«rdoret aktivisht. Aktivizimi i Maglev sjell pĂ«rfitime tĂ« dukshme pĂ«r aplikacione CLI me jetĂ« tĂ« shkurtĂ«r, qĂ« nuk kryejnĂ« operacione tĂ« gjatĂ«; pĂ«r shembull, koha e kryerjes sĂ« testit Jetstream shkurtohet me 7.5%, ndĂ«rsa testi Speedometer me 5%.
  • PĂ«rmirĂ«simi i funksionimit me rrjedha pĂ«rmes rritjes sĂ« vlerĂ«s sĂ« opsionit highWaterMark nga 16 KB nĂ« 65 KB (pĂ«rcakton limitin deri nĂ« tĂ« cilin bĂ«het buferizimi i shkrimit). Ky ndryshim rrit konsumimin e memories, prandaj aplikacionet qĂ« janĂ« tĂ« menduara pĂ«r t'u pĂ«rdorur me memorie tĂ« kufizuar mund tĂ« kenĂ« nevojĂ« tĂ« kthejnĂ« vlerĂ«n e vjetĂ«r pĂ«rmes thirrjes setDefaultHighWaterMark().
  • Rritja e performancĂ«s sĂ« API fetch() dhe test runner pĂ«rmes ndihmĂ«s sĂ« krijimit tĂ« instancave tĂ« AbortSignal. PĂ«rmirĂ«simi i performancĂ«s pĂ«r API-tĂ« lidhur me punĂ«n sinhrone me sistemet e skedave.
  • Ofrimi i mundĂ«sisĂ« eksperimentale pĂ«r tĂ« pĂ«rdorur thirrjen "require()" pĂ«r tĂ« ngarkuar module JavaScript ESM (ECMAScript Modules) nĂ« modalitet sinhron. Modulet ESM pĂ«rdoren nĂ« shfletues dhe zĂ«vendĂ«sojnĂ« modulet CommonJS, specifike pĂ«r Node.js. PĂ«r t'u ngarkuar pĂ«rmes "require()", moduli ESM duhet tĂ« ekzekutohet nĂ« modalitet sinhron (pa await nĂ« nivelin e lartĂ«). MbĂ«shtetja aktivizohet pĂ«rmes flamurit "—experimental-require-module".
  • Shtuar mundĂ«sia eksperimentale pĂ«r tĂ« ekzekutuar skriptet e caktuara nĂ« skedarin package.json, duke pĂ«rdorur komandĂ«n "—run ".
  • Komanda "node —watch" Ă«shtĂ« pĂ«rfshirĂ« nĂ« kategorinĂ« e qĂ«ndrueshme, me implementimin e modit tĂ« vĂ«zhgimit qĂ« siguron rinovimin e procesit kur ndryshohet skedari i importuar (pĂ«r shembull, kur ekzekutohet "node —watch index.js", procesi do tĂ« rinovohet automatikisht kur ndodhin ndryshime nĂ« index.js).
  • Implementimi i brendshĂ«m i API WebSocket Ă«shtĂ« stabilizuar, i cili lejon pĂ«rdorimin e WebSocket si klient pa nevojĂ«n e instalimit tĂ« varĂ«sive tĂ« tjera.
  • Shtuar mbĂ«shtetje tĂ« pjesshme pĂ«r API Navigator.
  • NĂ« API Webstreams Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r formatin e kompresimit deflate-raw.
  • NĂ« modulin node:fsmodule janĂ« shtuar funksionet glob dhe globSync pĂ«r pĂ«rputhjen e rrugĂ«ve tĂ« skedarĂ«ve sipas njĂ« modeli.
  • PĂ«rmirĂ«simi i trajtimit tĂ« stekĂ«ve IPv6 qĂ« janĂ« konfiguruar keq. Implementimi i algoritmit Happy Eyeballs pĂ«r rĂ«nien e shpejtĂ« nĂ« rast tĂ« problemeve me IPv6.
  • API util Ă«shtĂ« shpallur i vjetruar.
  • Versionet e varĂ«sive janĂ« azhurnuar: 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 nĂ« 3.8.0, ada 2.7.7 dhe undici 6.6.0.

Platforma Node.js mund të përdoret si për mbështetje të serverëve të aplikacioneve Web, ashtu edhe për të krijuar programe të zakonshme klients-server të rrjeteve. Për të zgjeruar funksionalitetin e aplikacioneve për Node.js është përgatitur një koleksion i madh modulash, ku mund të gjeni module me realizim. servera dhe klientë HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module për integrim me korniza të ndryshme web, procesorë WebSocket dhe Ajax, lidhës për DB (MySQL, PostgreSQL, SQLite, MongoDB), motorë për modelim, CSS, realizime të algoritmeve kriptografikë dhe sistemeve të autorizimit (OAuth), parserë XML.

Për të siguruar përpunimin e një numri të madh kërkesash paralele, Node.js përdor një model asinkron të ekzekutimit të kodit, të bazuar në përpunimin e ngjarjeve në mënyrë jo bllokuese dhe në përcaktimin e callback-handlera. Si metoda të shumëfishimit të lidhjeve mbështeten metoda si epoll, kqueue, /dev/poll dhe select. Për shumëfishimin e lidhjeve përdoret biblioteka libuv, e cila është një shtresë mbi libev në sistemet Unix dhe mbi IOCP në Windows. Për krijimin e një grupi të thjeshtësive (thread pool) përdoret biblioteka libeio, dhe për ekzekutimin e kërkesave DNS në mënyrë jo bllokuese është integruar c-ares. Të gjitha thirrjet sistemike që shkaktojnë bllokimin ekzekutohen brenda grupit të thjeshtësive dhe më pas, si dhe menaxherët e sinjaleve, transmetojnë rezultatin e punës së tyre prapa përmes një kanali pa emër (pipe).

Ekzekutimi i kodit JavaScript sigurohet përmes aktivizimit të motorit V8 të zhvilluar nga Google (për më tepër, Microsoft po zhvillon një variant Node.js me motorin Chakra-Core). Në thelb, Node.js është i ngjashëm me framework-et Perl AnyEvent, Ruby Event Machine, Python Twisted dhe implementimin e ngjarjeve në Tcl, por cikli i përpunimit të ngjarjeve (event loop) në Node.js është i fshehur nga zhvilluesi dhe i ngjan përpunimit të ngjarjeve në një aplikacion web që funksionon në shfletues.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster