Node.js 22.0 dirilis, platform kanggo mbukak aplikasi jaringan ing JavaScript. Node.js 22.0 diklasifikasikaké minangka cabang support long-term, nanging status iki bakal diutus mung ing Oktober, sawise stabil. Node.js 22.x bakal didhukung nganti 30 April 2027. Pangopènan cabang LTS sadurunge Node.js 20.x bakal nganti April 2026, lan taun sadurunge cabang LTS pungkasan 18.x nganti April 2025. Cabang pementasan Node.js 21.x bakal dihentikan tanggal 1 Juni 2024.
dandan utama:
- Mesin V8 wis dianyari versi 12.4, digunakake ing Chromium 124. Antarane owah-owahan dibandhingake cabang Node.js 21, kang digunakake mesin V8 11.8), kacathet:
- Dhukungan kanggo ekstensi WasmGC, sing nyederhanakake porting program sing ditulis ing basa pamrograman sing nggunakake pengumpul sampah (Kotlin, PHP, Java, lsp.) menyang WebAssembly. WasmGC nambahake jinis struktur lan susunan anyar sing bisa nggunakake alokasi memori non-linear.
- Dhukungan kanggo cara Array.fromAsync (), kang bedo ngasilake Kayata anyar saka obyek Array disalin saka Uploaded-kaya, iterable utawa async obyek iterable.
- Dhukungan kanggo cara iterator kayata .map, .filter, .find, .take, .drop, .forEach lan .reduce.
- Dhukungan kanggo obyek Set sing nemtokake koleksi nilai lan nawakake metode sing ngleksanakake operasi set umum, kayata intersection, union, prabédan, lan tambahan.
- Compiler JIT sing ngoptimalake Maglev diaktifake kanthi standar, ngarahake cepet ngasilake kode mesin kinerja dhuwur kanggo kode JavaScript sing akeh digunakake. Ngaktifake Maglev bisa Ngartekno nyepetake aplikasi CLI short-urip sing ora nindakake operasi long-term, Contone, wektu kanggo ngrampungake test Jetstrea suda dening 7.5%, lan test Speedometer dening 5%.
- Nggarap stream wis digawe cepet kanthi nambah nilai pilihan highWaterMark saka 16 KB dadi 65 KB (nemtokake watesan nganti rekaman buffer). Pangowahan nyebabake konsumsi memori tambah, supaya aplikasi sing dirancang kanggo mbukak ing RAM winates bisa uga kudu bali menyang Nilai lawas liwat telpon kanggo setDefaultHighWaterMark ().
- Kinerja apik saka njupuk () lan test runner API dening nggawe AbortSignal instantiation luwih efisien. Kinerja API sing ana gandhengane karo karya sinkron karo sistem file wis apik.
- Fitur eksperimen wis kasedhiya kanggo nggunakake telpon "mbutuhake ()" kanggo mbukak modul JavaScript ESM (Modul ECMAScript) ing mode sinkron. Modul ESM digunakake ing browser lan ngganti modul CommonJS khusus kanggo Node.js. Kanggo mbukak liwat "mbutuhake ()", modul ESM kudu dieksekusi ing mode sinkron (tanpa ngenteni ing tingkat ndhuwur). Dhukungan diaktifake liwat gendera "--experimental-require-modul".
- Nambahake kemampuan eksperimen kanggo mbukak skrip sing ditetepake ing file package.json nggunakake printah "--run". "
- Printah "node -watch" wis dipindhah menyang kategori stabil kanthi implementasine mode watch sing njamin proses diwiwiti maneh nalika file sing diimpor diganti (contone, yen "node -watch index.js" dieksekusi, proses bakal diwiwiti maneh kanthi otomatis nalika index.js diganti).
- Implementasi asli saka WebSocket API wis stabil, saéngga WebSocket bisa digunakake ing mode klien tanpa nginstal dependensi tambahan.
- Nambahake dhukungan parsial kanggo API Navigator.
- Webstreams API wis nambahake dhukungan kanggo format kompresi deflate-raw.
- Nambahake fungsi glob lan globSync menyang node:fsmodule kanggo cocog pola path file.
- Ngapikake penanganan tumpukan IPv6 sing ora dikonfigurasi kanthi bener. Algoritma Happy Eyeballs dileksanakake kanggo muter maneh kanthi cepet yen ana masalah karo operasi IPv6.
- API utilitas wis ora digunakake.
- Versi dependensi sing dianyari: 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 kanggo 3.8.0, ana 2.7.7 lan undici 6.6.0 .
Platform Node.js bisa digunakake kanggo dhukungan aplikasi web sisih server lan kanggo nggawe program jaringan klien lan sisih server standar. Kanggo ngembangake fungsi aplikasi Node.js, akeh modul sing wis disiapake, kalebu sing ngleksanakake. server lan klien HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modul kanggo integrasi karo macem-macem framework web, handler WebSocket lan Ajax, konektor menyang DBMS (MySQL, PostgreSQL, SQLite, MongoDB), mesin template, mesin CSS, implementasi algoritma kriptografi lan sistem otorisasi (OAuth), parser XML.
Kanggo nangani akeh panjalukan paralel, Node.js nggunakake model eksekusi kode asinkron adhedhasar pangolahan acara sing ora mblokir lan panangan callback. Cara sing didhukung kanggo sambungan multiplexing kalebu epoll, kqueue, /dev/poll, lan pilih. Kanggo multiplexing sambungan, perpustakaan libuv digunakake, sing minangka tambahan kanggo libev ing sistem Unix lan kanggo IOCP ing Windows. Pustaka libeio digunakake kanggo nggawe blumbang thread, lan c-ares digabungake kanggo nindakake pitakon DNS ing mode non-blocking. Kabeh panggilan sistem sing nyebabake pamblokiran dieksekusi ing blumbang thread lan banjur, kaya panangan sinyal, bali asil karya liwat pipa sing ora dijenengi.
Eksekusi kode JavaScript dijamin liwat panggunaan mesin V8 sing dikembangake dening Google (saliyane, Microsoft ngembangake versi Node.js kanthi mesin Chakra-Core). Ing inti, Node.js mirip karo Perl AnyEvent, Mesin Acara Ruby, kerangka Python Twisted lan implementasine acara ing Tcl, nanging loop acara ing Node.js didhelikake saka pangembang lan meh padha karo pangolahan acara ing aplikasi web. mlaku ing browser.
Source: opennet.ru
