Deno 2.9 platform with Deno Desktop support for creating desktop applications

The Deno 2.9 platform has been released, designed for the isolated execution of server and desktop applications in JavaScript and TypeScript using the V8 engine, which is applied in Chromium-based browsers. The project is developed by Ryan Dahl, the creator of Node.js, with the aim of providing a more secure environment and addressing conceptual flaws in Node.js architecture. To enhance security, the wrapper around the V8 engine is written in Rust, and the Tokio platform is used for non-blocking request handling. The project's code is distributed under the MIT license. Builds are prepared for Linux, Windows, and macOS.

The new version is notable for the implementation of the experimental Deno Desktop toolkit, which allows the creation of user applications with graphical interfaces built using web technologies, similar to the Electron platform. The application's logic and interface are defined in JavaScript or TypeScript utilizing standard web frameworks, with operation organized using the browser engine. The application is delivered as a self-contained executable file and does not differ from classic graphical interface programs in terms of user interaction.

Deno Desktop offers backends for operation over two browser engines — the system-provided WebView and the integrable CEF (Chromium Embedded Framework). The WebView-based backend allows reducing the size of executable files by operating on top of the system's browser engine, WebView2 in Windows and WebKit in macOS and Linux, while the CEF backend enables consistent interface rendering across Linux, macOS, and Windows platforms, albeit at the cost of a significant increase in executable file size.

The size of the executable file for the test application using WebView is estimated at 40 MB, while for CEF it is 150 MB. For comparison, this figure is 100 MB for Electron, 61 MB for Electrobun, and 2-10 MB for Tauri (Electron uses an embedded CEF, while Electrobun and Tauri utilize the system's WebView). A mechanism for sharing the common CEF engine across different applications is in development, which will allow for reducing the size of executable files.

Deno Desktop, Node.js ilə tam uyğunluğu, NPM ekosistemini və Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start və Vite SSR kimi veb çətirləri dəstəkləyir. Native masaüstü API-lərinə çıxış üçün API təqdim olunur, məsələn, proqramdan pəncərin ölçüsünü, mövqeyini və görünürlüğünü idarə etmək, menyular yaratmaq, öz hadisə idarəedicilərini qoşmaq, sistem tepsisi və panelləri üçün ikonalar təyin etmək, OS-ya uyğun dialoqlar göstərmək mümkündür. Veb tətbiqlərin kodunu dəyişdirmədən masaüstü proqramlar kimi paketlənməsi, eyni sistemdə Linux x64/arm64, Windows x64 və macOS x64/arm64 üçün istifadə olunan veb çətirlərinin avtomatik müəyyənləşdirilməsi və kross-kompilyasiya imkanı var. Linux üçün AppImage, deb və rpm formatlarında paketlər yaradıla bilər.

Deno Desktop-da Electron, Electrobun və Tauri-dən fərqli olaraq, çoxprosesli IPC soketləri əsasında nəzərdə tutulmamışdır, əksinə CEF üçün çoxsahəli model və ya WebView üçün proses qrupları əsasında model tətbiq olunur, burada arxa plan ilə qrafik interfeys kodu arasında əlaqə bir proses daxilində kanallar vasitəsilə təmin edilir. Yüklənmiş versiyadan fərqli olaraq yalnız dəyişmiş məlumatları yükləyərək trafiki azaltması üçün avtomatik yeniləmələri yoxlama və quraşdırma mexanizmi var (bsdiff əsasında ikili yamalar tətbiq olunur) və yeni versiyanın işə salınması zamanı problem baş verdikdə əvvəlki versiyaya qayıtma dəstəklənir.

Deno 2.9-da digər yeniliklər arasında:

  • npm, pnpm, yarn və Bun-dan Deno-ya asan keçid üçün lock fayllarının birbaşa oxunmasını dəstəkləyən 'deno install' komandası.
  • CSS modullarının ixracını dəstəkləyən.
  • Node.js 26 ilə uyğunluğun təmin edilməsi.
  • 'deno link', 'deno unlink' və 'deno list' yeni komandaları.
  • Resurslara kilid qoymaq üçün Web Locks API-sini dəstəkləyir.
  • Əvvəlki versiyaların mühafizəsi üçün asılılıq yeniləmələrinin quraşdırılmasından əvvəl 24 saat gözləmə (min-release-age=24h) əlavə olunması.
  • Başlanma vaxtının azaldılması (~2x), yaddaş istehlakının azaldılması (~2.2x) və HTTP-dən istifadə zamanı bant genişliyinin artırılması (~1.2x).



    Mənbə: opennet.ru
DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster