JavaScript plataforma Node.js 22.0.0 eskuragarri

Node.js 22.0 kaleratu zen, JavaScript-en sareko aplikazioak exekutatzeko plataforma. Node.js 22.0 epe luzerako laguntza-adar gisa sailkatuta dago, baina egoera hori urrian bakarrik esleituko da, egonkortu ondoren. Node.js 22.x 30ko apirilaren 2027era arte onartuko da. Node.js 20.x-en aurreko LTS adarraren mantentze-lanak 2026ko apirilera arte iraungo du, eta azken LTS adar 18.x aurreko urtean 2025eko apirilera arte. Node.js 21.x-en eszenatze-adarra 1ko ekainaren 2024ean etengo da.

Hobekuntza nagusiak:

  • V8 motorra 12.4 bertsiora eguneratu da, Chromium 124-n erabiltzen den. Aldaketen artean, V21 8 motorra erabiltzen zuen Node.js 11.8 adarrarekin alderatuta, honako hau nabarmentzen da:
    • WasmGC luzapenerako euskarria, zabor-biltzailea (Kotlin, PHP, Java, etab.) erabiltzen duten programazio-lengoaietan idatzitako programak WebAssemblyra eramatea errazten duena. WasmGC-k memoria-esleipen ez-lineala erabil dezaketen egitura eta matrize mota berriak gehitzen ditu.
    • Array.fromAsync() metodoaren euskarria, zeinak modu asinkronoan itzultzen duen Array objektu baten instantzia berri bat itzultzen du array antzeko, iterable edo asinkroniko iterable objektu batetik kopiatutako.
    • .map, .iragazkia, .find, .take, .drop, .forEach eta .reduce bezalako iterazio-metodoetarako laguntza.
    • Balio-bilduma bat definitzen duen eta multzo-eragiketa arruntak ezartzen dituzten metodoak eskaintzen dituen Multzo objektuaren euskarria, hala nola, elkargunea, batasuna, aldea eta batuketa.
  • Maglev optimizatzeko JIT konpilatzailea lehenespenez gaituta dago, errendimendu handiko makina-kodea azkar sortzera zuzenduta, asko erabiltzen den JavaScript kodearentzat. Maglev gaitzeak nabarmen bizkortu ditzake iraupen laburreko CLI aplikazioak, epe luzerako eragiketak egiten ez dituztenak, adibidez, Jetstrea proba burutzeko denbora % 7.5 murrizten da eta Abiadura-neurgailua % 5.
  • Korronteekin lana bizkortu egin da highWaterMark aukeraren balioa 16 KBtik 65 KBra handituz (grabaketa bufferera arte dagoen muga zehazten du). Aldaketak memoria-kontsumoa handitzen du, beraz, RAM mugatuan exekutatzeko diseinatutako aplikazioek balio zaharra berreskuratu beharko dute setDefaultHighWaterMark() dei baten bidez.
  • Fetch() eta test runner APIen errendimendua hobetu da AbortSignal instantziazioa eraginkorragoa eginez. Fitxategi-sistemekin lan sinkronoarekin lotutako APIen errendimendua hobetu da.
  • Ezaugarri esperimental bat eman da "require()" deia erabiltzeko JavaScript ESM moduluak (ECMAScript moduluak) modu sinkronoan kargatzeko. ESM moduluak arakatzaileetan erabiltzen dira eta Node.js-en berariazko CommonJS moduluak ordezkatzen dituzte. "require()" bidez kargatzeko, ESM modulua modu sinkronoan exekutatu behar da (goiko mailan itxaron gabe). Laguntza "--experimental-require-module" banderaren bidez gaitzen da.
  • Package.json fitxategian definitutako scriptak exekutatzeko gaitasun esperimentala gehitu da "--run" komandoa erabiliz "
  • “Node –watch” komandoa kategoria egonkorrera eraman da, inportatutako fitxategia aldatzen denean prozesua berrabiaraziko dela ziurtatzen duen erloju modua ezarrita (adibidez, “node –watch index.js” exekutatzen bada, prozesua automatikoki berrabiaraziko da index.js aldatzen denean).
  • WebSocket APIaren jatorrizko inplementazioa egonkortu da, eta WebSocket bezero moduan erabiltzeko aukera ematen du mendekotasun gehigarriak instalatu gabe.
  • Nabigatzaile APIrako laguntza partziala gehitu da.
  • Webstreams APIak deflate-raw konpresio formatuaren laguntza gehitu du.
  • Glob eta globSync funtzioak gehitu dira node:fsmodule fitxategi-bideen ereduak parekatzeko.
  • Gaizki konfiguratutako IPv6 pilaren kudeaketa hobetu da. Happy Eyeballs algoritmoa inplementatu da IPv6 funtzionamenduarekin arazoak izanez gero atzera egiteko.
  • util APIa zaharkituta geratu da.
  • Mendekotasun bertsio eguneratuak: 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 3.8.0, ada 2.7.7 eta undici. .

Node.js plataforma web aplikazioen zerbitzari-aldeko euskarrirako eta bezero- eta zerbitzari-aldeko sare-programa estandarrak sortzeko erabil daiteke. Node.js aplikazioen funtzionaltasuna zabaltzeko, modulu bilduma zabala prestatu da, inplementazioa dutenak barne. zerbitzariak eta HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 bezeroak, hainbat web framework-ekin integratzeko moduluak, WebSocket eta Ajax kudeatzaileak, DBMS-rako konektoreak (MySQL, PostgreSQL, SQLite, MongoDB), txantiloi-motorrak, CSS motorrak, algoritmo kriptografikoen eta baimen-sistemen inplementazioak (OAuth), XML parserrak.

Eskaera paralelo ugari kudeatzeko, Node.js-ek kode asinkronoaren exekuzio-eredu bat erabiltzen du blokeatzen ez den gertaeren prozesamenduan eta dei-itzuliaren kudeatzaileak definitzean oinarrituta. Konexioak multiplexatzeko onartzen diren metodoak honako hauek dira: epoll, kqueue, /dev/poll eta select. Konexioa multiplexatzeko, libuv liburutegia erabiltzen da, hau da, libev-en gehigarria Unix sistemetan eta IOCP-rako Windows-en. Libeio liburutegia hari multzo bat sortzeko erabiltzen da, eta c-ares DNS kontsultak blokeatzeko modua egiteko integratuta dago. Blokeoa eragiten duten sistema-dei guztiak hari multzoan exekutatzen dira eta gero, seinale-kudeatzaileek bezala, beren lanaren emaitza izenik gabeko kanalizazio batetik itzultzen dute.

JavaScript kodearen exekuzioa Googlek garatutako V8 motorra erabiliz bermatzen da (gainera, Microsoft Node.js bertsio bat garatzen ari da Chakra-Core motorrekin). Bere oinarrian, Node.js Perl AnyEvent, Ruby Event Machine, Python Twisted esparruen eta Tcl-en gertaeren ezarpenaren antzekoa da, baina Node.js-en gertaeren begizta garatzaileari ezkutatuta dago eta web aplikazio bateko gertaeren prozesamenduaren antza du. arakatzailean exekutatzen.

Iturria: opennet.ru

Gehitu iruzkin berria