programmatūra · 4 min · 11.07.2026

Deno 2.9 taisa native darbvirsmas lietotni no web koda ar vienu komandu

Deno 2.9, kas iznāca 25. jūnijā, pievieno komandu deno desktop. Tā paņem gatavu web projektu un uzbūvē no tā vienu native izpildāmo failu darbvirsmai, bez Electron slāņa. Komanda pati atpazīst deviņus ietvarus un neprasa kodā neko pārrakstīt.

Atpazīstamie ietvari ir Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start un Vite SSR. Rezultāts atkarīgs no operētājsistēmas: macOS iznāk .app un .dmg, Windows — .exe un .msi, Linux — .AppImage, .deb un .rpm. Viss kods, izpildvide un renderēšanas dzinis nonāk vienā failā.

Kā tas strādā

Izstrādātājs projektā palaiž deno desktop, un Deno noskaidro, kāds ietvars tur ir, uzbūvē web daļu un ietin to native logā. Deno komanda savā 2.9 laidiena pierakstā to sauc par vienu pašpietiekamu bināru failu, kurā ir gan lietotnes kods, gan renderēšanas dzinis.

Atšķirībā no Electron, kur JavaScript puse runā ar sistēmu caur atsevišķu procesu un IPC ziņām, Deno logs pieslēdzas izpildvidei tajā pašā procesā. Tas nozīmē, ka izsaukumi uz failu sistēmu vai citām native funkcijām neiet caur starpprocesu kanālu.

Trīs renderēšanas dzinēji

Izvēle ir starp trim variantiem. Noklusētais ir WebView: tas izmanto operētājsistēmas dzini — WebKit uz macOS, WebView2 uz Windows. Binārais fails paliek mazs, ap 40 MB pēc Deno dokumentācijas, taču izskats mainās starp platformām, jo katra sistēma renderē pa savam.

Otrs variants ir CEF, kas ietin Chromium. Tad lietotne izskatās vienādi visur, bet fails uzblīst līdz aptuveni 150 MB. Trešais, Raw, dzini nepievieno vispār — logu zīmē pats izstrādātājs caur WebGPU vai Skia, kas noder specifiskām slodzēm.

Skaitļi mēdz atšķirties atkarībā no mērīšanas. The Register uz macOS izmērīja 68,5 MB WebView režīmā un 308,9 MB ar CEF, tātad vairāk nekā Deno dokumentācijā. Abi mērījumi ir pareizi — tie vienkārši mēra dažādus apstākļus.

Kur tas stāv blakus Electron un Tauri

Tauri un Dioxus jau tagad taisa mazākus failus nekā Deno WebView režīms, tāpēc pēc izmēra Deno neuzvar. Electron savukārt ietin Chromium tāpat kā Deno CEF režīms, tāpēc arī tur izmērs līdzīgs.

Divas lietas Deno tomēr dara savādāk. Pirmā ir process bez IPC: native saites strādā tajā pašā procesā. Otrā ir ietvaru automātiskā atpazīšana bez konfigurācijas, ko konkurenti neprasa taisīt manuāli.

Funkcija ir eksperimentāla, un stabilitātes datuma nav. Uz macOS neaizveras loga aizvēršanas poga, trūkst native failu izvēlnes API un starpliktuves API. Mobilais atbalsts ir plānots, bet vēl nav.

Pārējais laidienā

Aukstā palaišana nokrita no 34,2 ms līdz 17,3 ms — gandrīz divreiz ātrāk. HTTP caurlaide reālās slodzēs pieauga no 56 800 līdz 72 400 pieprasījumiem sekundē. Atmiņas patēriņš zem slodzes kritās no 142 MB uz 64 MB, tātad ap 2,2 reizes mazāk.

Komanda deno install tagad lasa npm, pnpm, yarn un Bun bloķēšanas failus tieši, tāpēc pāreja uz Deno pakotņu pārvaldnieku prasa pāris komandas, ne pilnu migrāciju. Node.js saderība pavirzījās uz 26.3.0, un tādi Node iebūvētie moduļi kā import "fs" tagad atrisinās bez papildu karogiem.

Drošības pusē pēc noklusējuma ieslēgts 24 stundu minimālais atkarības vecums npm pakotnēm. Svaigi publicēta un, iespējams, kompromitēta versija neienāk atkarību kokā tajā pašā brīdī, kad parādās. Web Cryptography API ieguva pēckvantu algoritmus ML-KEM, ML-DSA un SLH-DSA.

Kam to izmēģināt

Kamēr deno desktop ir eksperimentāls, tas der prototipiem un iekšējiem rīkiem, ne produkcijas lietotnēm ar prasību pēc stabila API. Ja komandai jau ir Next.js vai SvelteKit lietotne un vajag no tās darbvirsmas versiju bez atsevišķa Electron projekta uzturēšanas, viena komanda dod strādājošu bināru failu, ko pārbaudīt. Deno 2.9 lejupielādējams pa parasto deno upgrade, un pilns izmaiņu saraksts ir GitHub laidiena lapā.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no programmatūrasaistītie