Deno 2.9, një platformë e projektuar për ekzekutim të pavarur të aplikacioneve në server dhe desktop të shkruara në JavaScript dhe TypeScript duke përdorur motorin V8, i përdorur në shfletuesit e bazuar në Chromium, është publikuar. Projekti po zhvillohet nga Ryan Dahl, krijuesi i Node.js, me qëllim ofrimin e një mjedisi më të sigurt dhe eliminimin e gabimeve konceptuale në arkitekturën Node.js. Për të përmirësuar sigurinë, kuadri V8 është shkruar në Rust, dhe platforma Tokio përdoret për përpunimin e kërkesave jo-bllokuese. Kodi i projektit shpërndahet sipas licencës MIT. Ndërtimet janë përgatitur për Linux, Windows О macOS.
Versioni i ri është i njohur për zbatimin e paketës eksperimentale të mjeteve Deno Desktop, e cila mundëson krijimin e aplikacioneve GUI të personalizuara të ndërtuara duke përdorur teknologji web, të ngjashme me platformën Electron. Logjika dhe ndërfaqja e aplikacionit përcaktohen në JavaScript ose TypeScript duke përdorur korniza standarde web, dhe aplikacioni ekzekutohet duke përdorur një motor të bazuar në shfletues. Aplikacioni dorëzohet si një skedar ekzekutues i pavarur dhe ofron një ndërfaqe përdoruesi të ngjashme me atë të programeve klasike GUI.
Deno Desktop ofron backend-e për t'u ekzekutuar në dy motorë shfletuesish: WebView i sistemit operativ dhe CEF (Chromium Embedded Framework) i integruar në aplikacion. Backend-i i bazuar në WebView lejon madhësi më të vogla të skedarëve të ekzekutueshëm duke u ekzekutuar mbi motorin e shfletuesit WebView2 të sistemit. Windows dhe WebKit në macOS О Linux, dhe backend-i CEF bën të mundur arritjen e të njëjtit renderim të ndërfaqes në të gjitha platformat. Linux, macOS О Windows, por me koston e një rritjeje të konsiderueshme të madhësisë së skedarëve të ekzekutueshëm.
Madhësia e skedarit ekzekutues të aplikacionit të testimit vlerësohet në 40 MB duke përdorur WebView dhe 150 MB duke përdorur CEF. Për krahasim, kjo shifër është 100 MB për Electron, 61 MB për Electrobun dhe 2-10 MB për Tauri (Electron përdor CEF të integruar, ndërsa Electrobun dhe Tauri përdorin sistemin WebView). Një mekanizëm për ndarjen e një motori të përbashkët CEF në të gjitha aplikacionet është në zhvillim e sipër, i cili do të zvogëlojë madhësinë e skedarëve ekzekutues.
Deno Desktop është plotësisht i pajtueshëm me Node.js, ekosistemin NPM dhe kornizat web si Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start dhe Vite SSR. Ofrohet një API për qasje në API-të e desktopit vendas. Për shembull, ju mund të kontrolloni madhësinë, pozicionin dhe dukshmërinë e dritareve, të krijoni menu, të bashkëngjitni trajtues të personalizuar, të vendosni ikona për tabaka e sistemit dhe panelet, dhe të shfaqni dialogët e sistemit operativ vendas. Aplikacionet web mund të ndërtohen si programe desktopi pa ndryshuar kodin e tyre, dhe kornizat web të përdorura mund të zbulohen automatikisht dhe të kompilohen në mënyrë të kryqëzuar në një sistem të vetëm për... Linux x64/krah 64, Windows x64 dhe macOS x64/krah64. Për Linux Paketat mund të gjenerohen në formatet AppImage, deb dhe rpm.
Ndryshe nga Electron, Electrobun dhe Tauri, Deno Desktop nuk përdor një model ekzekutimi me shumë procese me IPC të bazuar në socket. Në vend të kësaj, ai përdor një model me shumë fije për CEF ose një model të bazuar në grup procesesh për WebView, me komunikim midis backend dhe kodit GUI nëpërmjet kanaleve brenda procesit. Ai ka një mekanizëm të integruar për kontrollin e përditësimeve dhe instalimin automatik që, për të kursyer bandwidth, shkarkon vetëm të dhënat që kanë ndryshuar që nga versioni i mëparshëm (duke përdorur patch-e binare të bazuara në bsdiff) dhe mbështet rikthimin në versionin e mëparshëm në rast të një dështimi gjatë nisjes së një versioni të ri.
Karakteristika të tjera të reja në Deno 2.9 përfshijnë:
- Mbështetje për leximin direkt të skedarëve të kyçjes në komandën "deno install" për të thjeshtuar migrimin në Deno nga npm, pnpm, yarn dhe Bun.
- Mbështetje për importimin e moduleve CSS.
- Implementimi i përputhshmërisë me platformën Node.js 26.
- Komanda të reja "deno link", "deno unlink" dhe "deno list".
- Mbështetje për API-në e Web Locks për vendosjen e kyçjeve në burime.
- Aktivizoni një vonesë të parazgjedhur prej 24 orësh (min-release-age=24h) përpara instalimit të versioneve të reja të varësive për t'u mbrojtur nga sulmet e kompromentimit të varësive.
- Kohë e reduktuar e nisjes (~2x), konsum i reduktuar i memories (~2.2x) dhe rendiment i rritur kur punohet me HTTP (~1.2x).

Burimi: opennet.ru

