Deno 2.9 kaleratu da, JavaScript eta TypeScript-en idatzitako zerbitzari-aldeko eta mahaigaineko aplikazioak modu independentean exekutatzeko diseinatutako plataforma bat, Chromium-en oinarritutako arakatzaileetan erabiltzen dena, V8 motorra erabiliz. Proiektua Ryan Dahlek garatzen ari da, Node.js-ren sortzaileak, ingurune seguruagoa eskaintzeko eta Node.js arkitekturako kontzeptu-erroreak ezabatzeko helburuarekin. Segurtasuna hobetzeko, V8 framework-a Rust-en idatzita dago, eta Tokio plataforma erabiltzen da eskaerak blokeatzen ez dituzten prozesatzeko. Proiektuaren kodea MIT lizentziapean banatzen da. Eraikuntzak prestatuta daude... Linux, Windows и macOS.
Bertsio berria Deno Desktop tresna-sorta esperimentalaren inplementazioagatik da nabarmena, eta horri esker, web teknologiak erabiliz eraikitako GUI aplikazio pertsonalizatuak sortu daitezke, Electron plataformaren antzekoak. Aplikazioaren logika eta interfazea JavaScript edo TypeScript-en definituta daude, web framework estandarrak erabiliz, eta aplikazioa arakatzailean oinarritutako motor bat erabiliz exekutatzen da. Aplikazioa fitxategi exekutagarri autonomo gisa entregatzen da eta GUI programa klasikoen antzeko erabiltzaile-interfazea eskaintzen du.
Deno Desktop-ek bi arakatzaile-motorretan exekutatzeko backend-ak eskaintzen ditu: sistema eragilearen WebView-ean eta aplikazioan integratutako CEF (Chromium Embedded Framework). WebView-ean oinarritutako backend-ak fitxategi exekutagarrien tamaina txikiagoak ahalbidetzen ditu sistemaren WebView2 arakatzaile-motorraren gainean exekutatuz. Windows eta WebKit-en macOS и Linux, eta CEF atzeko planoak plataforma guztietan interfazearen errendatze bera lortzea ahalbidetzen du Linux, macOS и Windows, baina exekutagarri diren fitxategien tamaina nabarmen handitzearen truke.
Proba-aplikazioaren fitxategi exekutagarriaren tamaina 40 MB-koa dela kalkulatzen da WebView erabiliz, eta 150 MB CEF erabiliz. Alderatzeko, zifra hau 100 MB da Electron-entzat, 61 MB Electrobun-entzat eta 2-10 MB Tauri-rentzat (Electron-ek txertatutako CEF erabiltzen du, eta Electrobun-ek eta Tauri-k, berriz, sistemaren WebView). Aplikazioen artean CEF motor komun bat partekatzeko mekanismo bat garatzen ari da, fitxategi exekutagarrien tamaina murriztuko duena.
Deno Desktop guztiz bateragarria da Node.js-rekin, NPM ekosistemarekin eta Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start eta Vite SSR bezalako web framework-ekin. API bat eskaintzen da mahaigaineko API natiboak atzitzeko. Adibidez, leihoen tamaina, posizioa eta ikusgarritasuna kontrola ditzakezu, menuak sortu, kudeatzaile pertsonalizatuak erantsi, sistemaren erretilurako eta paneletarako ikonoak ezarri eta sistema eragilearen elkarrizketa-koadro natiboak bistaratu. Web aplikazioak mahaigaineko programa gisa eraiki daitezke haien kodea aldatu gabe, eta erabilitako web framework-ak automatikoki detektatu eta sistema bakarrean konpilatu daitezke. Linux x64/arm64, Windows x64 eta macOS x64/arm64. -rako Linux Paketeak AppImage, deb eta rpm formatuetan sor daitezke.
Electron, Electrobun eta Tauri ez bezala, Deno Desktop-ek ez du socket-ean oinarritutako IPC duen prozesu anitzeko exekuzio eredurik erabiltzen. Horren ordez, CEF-erako hari anitzeko eredu bat edo WebView-erako prozesu taldeetan oinarritutako eredu bat erabiltzen du, backend-aren eta GUI kodearen arteko komunikazioa prozesu barruko kanalen bidez eginez. Eguneratze-egiaztapen integratua eta instalazio automatikoko mekanismoa ditu, banda-zabalera aurrezteko, aurreko bertsiotik aldatu diren datuak soilik deskargatzen dituena (bsdiff-ean oinarritutako adabaki bitarrak erabiliz) eta aurreko bertsiora itzultzea onartzen duena bertsio berri bat abiaraztean huts egiten bada.
Deno 2.9-ren beste ezaugarri berri batzuk hauek dira:
- "deno install" komandoan blokeo fitxategiak zuzenean irakurtzeko laguntza, npm, pnpm, yarn eta Bun-etik Denorako migrazioa errazteko.
- CSS moduluak inportatzeko laguntza.
- Node.js 26 plataformarekin bateragarritasunaren inplementazioa.
- "deno link", "deno unlink" eta "deno list" komando berriak.
- Baliabideetan blokeoak ezartzeko Web Locks APIrako laguntza.
- Gaitu 24 orduko atzerapen lehenetsia (min-release-age=24h) mendekotasunen bertsio berriak instalatu aurretik mendekotasunen erasoen aurka babesteko.
- Abio-denbora murriztua (~2x), memoria-kontsumo murriztua (~2.2x) eta HTTPrekin lan egitean errendimendua handitua (~1.2x).

Iturria: opennet.ru

