Node.js 22.0 dirilis, platform pikeun ngajalankeun aplikasi jaringan dina JavaScript. Node.js 22.0 digolongkeun kana cabang rojongan jangka panjang, tapi status ieu bakal ditugaskeun ngan dina Oktober, sanggeus stabilisasi. Node.js 22.x bakal dirojong dugi ka 30 April 2027. Pangropéa cabang LTS sateuacana tina Node.js 20.x bakal dugi ka April 2026, sareng taun sateuacan cabang LTS terakhir 18.x dugi ka April 2025. Cabang pementasan Node.js 21.x bakal dileungitkeun dina 1 Juni 2024.
Perbaikan utama:
- Mesin V8 parantos diropéa kana versi 12.4, dianggo dina Chromium 124. Diantara parobahan dibandingkeun sareng cabang Node.js 21, anu nganggo mesin V8 11.8), dicatet:
- Rojongan pikeun ekstensi WasmGC, anu nyederhanakeun porting program anu ditulis dina basa pamrograman anu nganggo pangumpulan sampah (Kotlin, PHP, Java, jsb) kana WebAssembly. WasmGC nambihan tipe anyar struktur jeung arrays nu bisa ngagunakeun alokasi memori non-linier.
- Rojongan pikeun Array.fromAsync () métode, nu asynchronously mulih conto anyar hiji objék Array disalin ti hiji Asép Sunandar Sunarya-kawas, iterable atanapi async obyék iterable.
- Rojongan pikeun métode iterator kayaning .map, .filter, . find, .take, .drop, .forEach and .reduce.
- Rojongan pikeun objék Set anu ngahartikeun kumpulan nilai sareng nawiskeun metode anu ngalaksanakeun operasi set umum, sapertos simpang, union, bédana, sareng tambahan.
- The Maglev optimizing JIT compiler diaktipkeun sacara standar, aimed di gancang ngahasilkeun kode mesin-kinerja tinggi pikeun kode JavaScript loba dipaké. Aktipkeun Maglev nyata bisa nyepetkeun aplikasi CLI pondok-cicing nu teu ngalakukeun operasi jangka panjang, Contona, waktu pikeun ngarengsekeun tes Jetstrea diréduksi ku 7.5%, sarta uji spedometer ku 5%.
- Gawé sareng aliran parantos digancangan ku ningkatkeun nilai pilihan highWaterMark tina 16 KB ka 65 KB (nangtukeun wates dugi ka rekaman buffered). Parobahan hasilna konsumsi memori ngaronjat, jadi aplikasi dirancang pikeun ngajalankeun on RAM kawates mungkin kudu balik deui ka nilai heubeul via panggero pikeun setDefaultHighWaterMark ().
- Ningkatkeun kinerja dipulut () jeung test runner API ku nyieun AbortSignal instantiation leuwih efisien. Kinerja API anu aya hubunganana sareng karya sinkron sareng sistem file parantos ningkat.
- Hiji fitur ékspérimén geus disadiakeun pikeun pamakéan panggero "merlukeun ()" pikeun beban modul JavaScript ESM (Modul ECMAScript) dina modeu sinkron. modul ESM dipaké dina browser tur ngaganti modul CommonJS husus pikeun Node.js. Pikeun beban via "merlukeun ()", modul ESM kudu dieksekusi dina modeu sinkron (tanpa ngantosan di tingkat luhur). Rojongan diaktipkeun via bandéra "--experimental-require-module".
- Ditambahkeun kamampuan ékspérimén pikeun ngajalankeun skrip anu didefinisikeun dina file package.json nganggo paréntah "--run". "
- Paréntah "node -watch" geus dipindahkeun ka kategori stabil kalayan palaksanaan mode nonton nu ensures yén prosés restarted nalika file diimpor robah (contona, lamun "node -watch index.js" dieksekusi, nu prosés bakal otomatis restarted lamun index.js robah).
- Palaksanaan asli tina WebSocket API geus stabilized, sahingga WebSocket bisa dipaké dina modeu klien tanpa masang dependensi tambahan.
- Ditambahkeun dukungan parsial pikeun Navigator API.
- Webstreams API parantos nambihan dukungan pikeun format komprési deflate-raw.
- Nambahkeun fungsi glob sareng globSync kana node:fsmodule pikeun nyocogkeun pola jalur file.
- Ningkatkeun penanganan tumpukan IPv6 anu teu leres dikonpigurasi. Algoritma Happy Eyeballs dilaksanakeun pikeun balikan gancang upami aya masalah sareng operasi IPv6.
- The util API geus deprecated.
- Vérsi kagumantungan diropéa: 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 mun 3.8.0, aya 2.7.7 jeung undici 6.6.0. .
Platform Node.js tiasa dianggo pikeun dukungan aplikasi wéb sisi server sareng pikeun nyiptakeun program jaringan sisi klien sareng server standar. Pikeun ngalegaan fungsi aplikasi Node.js, seueur pisan modul anu parantos disiapkeun, kalebet anu ngalaksanakeunana. server sareng klien HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modul pikeun integrasi sareng rupa-rupa kerangka wéb, pangendali WebSocket sareng Ajax, konektor ka DBMS (MySQL, PostgreSQL, SQLite, MongoDB), mesin témplat, mesin CSS, implementasi algoritma kriptografi sareng sistem otorisasina (OAuth), parser XML.
Pikeun nanganan sajumlah ageung pamundut paralel, Node.js nganggo modél palaksanaan kode Asynchronous dumasar kana pamrosésan acara anu henteu ngahalangan sareng nangtoskeun panangan callback. Métode anu dirojong pikeun sambungan multiplexing kalebet epoll, kqueue, /dev/poll, sareng pilih. Pikeun sambungan multiplexing, perpustakaan libuv dipaké, nu mangrupakeun tambihan-on libev on sistem Unix jeung ka IOCP on Windows. Perpustakaan libeio dipaké pikeun nyieun kolam renang thread, sarta c-ares ieu terpadu pikeun ngalakukeun queries DNS dina mode non-blocking. Sadaya telepon sistem anu nyababkeun blokir dilaksanakeun dina kolam renang benang teras, sapertos panangan sinyal, ngalangkungan hasil padamelanna deui ngalangkungan pipa anu henteu namina.
Palaksanaan kode JavaScript geus ensured ngaliwatan pamakéan mesin V8 dikembangkeun ku Google (sajaba ti éta, Microsoft ngembangkeun versi Node.js kalawan mesin Chakra-Core). Intina, Node.js sami sareng Perl AnyEvent, Mesin Acara Ruby, kerangka Python Twisted sareng palaksanaan acara di Tcl, tapi loop acara di Node.js disumputkeun tina pamekar sareng mirip ngolah acara dina aplikasi wéb. ngajalankeun dina browser.
sumber: opennet.ru
