Deno 2.9 pievieno komandu deno desktop, kas paņem TypeScript skriptu vai gatavu tīmekļa lietotni un sakompilē to par vienu darbvirsmas programmu. Uz macOS rezultāts aizņem aptuveni 68,5 MB, ja izmanto operētājsistēmas iebūvēto WebView. Ja tā vietā ieliek Chromium dzini (CEF), tas pats fails izaug līdz aptuveni 309 MB.
Versija iznāca 26. jūnijā, un komanda pagaidām ir canary statusā — pirms stabilā laidiena. Deno dokumentācija atklāti brīdina, ka pati komanda, konfigurācijas atslēgas un TypeScript API vēl var mainīties. Ideja tomēr ir skaidra: uzņemt to pašu HTML, CSS un TypeScript, ko izstrādātājs jau raksta pārlūkam, un dabūt no tā .exe vai .dmg failu bez atsevišķa Electron vai Rust slāņa. The Register to nosauca par Deno gājienu Electron un Tauri teritorijā.
Kā komanda strādā
Kompilētajā programmā UI darbojas WebView logā, bet lietotnes loģika izpildās Deno izpildvidē. Iekšā ir arī lokāls tīmekļa serveris, tāpēc jau uzrakstīta tīmekļa lietotne pāriet uz darbvirsmu bez pārrakstīšanas. Komandu var pavērst gan pret vienu skriptu, gan pret veselu ietvaru — deno desktop saņem ceļu un izdod bināru failu.
Pēc AlternativeTo ziņotā, atbalstīti ir Next.js, Astro, Deno Fresh, TanStack Start un Vite SSR. Izeja ir viens pašpietiekams binārs, ko var izplatīt bez papildu instalēšanas soļiem.
Kur tas iekļaujas Electron un Tauri vidū
Darbvirsmas lietotnes no tīmekļa koda šodien būvē divos galvenajos veidos. Electron ievelk pilnu Chromium un Node.js, tāpēc pat vienkārša lietotne aizņem simtiem megabaitu, toties uzvedas identiski visur. Tauri iet pretējo ceļu — izmanto operētājsistēmas WebView un dod dažus megabaitus lielus binārus, bet aizmugures loģiku prasa rakstīt Rust valodā.
Deno Desktop paņem Tauri pieeju ar sistēmas WebView, bet aizmuguri atstāj TypeScript un Deno pusē. Tāpēc arī raksta blogeris Šons Kims, ka programmu var uztaisīt bez Electron un bez Rust. Tā ir tā pati valoda visā projektā — no pārlūka koda līdz gatavam darbvirsmas failam.
Trīs dzini pēc izvēles
Deno Desktop piedāvā izvēlēties, kā tieši attēlot saskarni. Noklusējums ir WebView — operētājsistēmas savs pārlūka dzinis. Tas dod mazāko failu, bet startē lēnāk nekā Chromium. Otra iespēja ir CEF, kas ievelk pilnu Chromium un aizņem 150–309 MB, toties nodrošina identisku uzvedību visās platformās. Trešā iespēja atsakās no tīmekļa dzinēja pavisam: izstrādātājs zīmē saturu pats ar WebGPU, Skia vai savu risinājumu.
Programma dabū piekļuvi arī vietējām sistēmas iespējām. Ir iebūvētas vietējās izvēlnes un konteksta izvēlnes, sistēmas dialogi brīdinājumiem un apstiprinājumiem, kā arī tīmekļa Notifications API, kas paziņojumus rāda kā operētājsistēmas paziņojumus. Ar in-process saiti var izcelt Deno funkcijas tieši WebView vai CEF pusē.
Kā izplata gatavo failu
Komanda uzreiz taisa katras platformas ierasto instalatora formātu. Uz macOS tie ir .app un .dmg, uz Windows — .exe un .msi, uz Linux — .AppImage, .deb un .rpm. Tas nozīmē, ka viena komanda no viena pirmkoda dod trīs platformām gatavus instalatorus.
Kur robežas jūtamas
Canary statuss nav tikai formalitāte. Failu izvēles dialogi vēl nestrādā — atliek tīmekļa faila ievade un vilkšana ar peli. Starpliktuves (clipboard) API nav vispār. Mobilās platformas netiek atbalstītas. Uz macOS ar WebView ir novērotas logu pārvaldības problēmas. Katra no šīm vietām līdz stabilajam laidienam vēl var mainīties, un konkrētu datumu stabilajai versijai Deno komanda nav nosaukusi.
Ap Deno virzienu ir arī skepse. Viens izstrādātājs, ko citē The Register, iebilst pret to, ka Deno arvien vairāk atkārto Node.js iespējas, nevis tur savu sākotnējo vienkāršības priekšrocību.
Deno arvien vairāk enerģijas tērē tam, lai panāktu Node.js.
Kas vēl ir 2.9
Darbvirsmas komanda nav vienīgais jaunums. deno install tagad tieši nolasa npm, pnpm, Yarn un Bun lock failus, tāpēc projekta pārcelšana uz Deno prasa pāris komandu. Klāt ir Node.js 26 savietojamība. Web Crypto API paplašināts ar pēckvantu algoritmiem. CSS failus var importēt kā constructable stylesheets ar import atribūtiem. Uzlaboti arī deno compile, deno bundle, deno fmt un deno task, kā arī startēšanas ātrums, atmiņas patēriņš un HTTP caurlaide.
Praksē tas nozīmē, ka komanda, kas jau raksta lietotni ar Deno un tīmekļa ietvaru, no tā paša koda var izlaist darbvirsmas programmu ar 68,5 MB WebView versiju vai 309 MB Chromium versiju. Kamēr komanda ir canary, ražošanā to likt vēl agri.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.