Plataforma Deno 2.9 com suporte para Deno Desktop para a criação de aplicativos desktop

A versão 2.9 da plataforma Deno foi publicada, destinada à execução isolada de aplicações de servidor e desktop nas linguagens JavaScript e TypeScript, utilizando o motor V8, empregado em navegadores baseados em Chromium. O projeto é desenvolvido por Ryan Dahl, o criador do Node.js, com o objetivo de fornecer um ambiente mais seguro e corrigir erros conceituais cometidos na arquitetura do Node.js. Para aumentar a segurança, a camada ao redor do motor V8 é escrita em Rust, e para o processamento de requisições de forma não bloqueante, utiliza-se a plataforma Tokio. O código do projeto é distribuído sob a licença MIT. Compilações estão disponíveis para Linux, Windows e macOS.

A nova versão se destaca pela implementação de uma ferramenta experimental chamada Deno Desktop, que permite criar aplicações de usuário com interface gráfica, construídas utilizando tecnologias web, de forma semelhante à plataforma Electron. A lógica e a interface da aplicação são definidas nas linguagens JavaScript ou TypeScript, utilizando frameworks web típicos, enquanto o funcionamento é organizado com o uso do motor de navegador. A aplicação é fornecida como um arquivo executável autossuficiente e não difere, em interação com o usuário, de programas clássicos com interface gráfica.

No Deno Desktop, são oferecidos backends para funcionar sobre dois motores de navegador — o fornecido pelo sistema operacional WebView e o que é integrado ao aplicativo CEF (Chromium Embedded Framework). O backend baseado em WebView permite reduzir o tamanho dos arquivos executáveis ao operar sobre o motor de navegador do sistema WebView2 no Windows e WebKit em macOS e Linux, enquanto o backend CEF possibilita conseguir uma rendering uniforme da interface nas plataformas Linux, macOS e Windows, mas a um custo significativo de aumento no tamanho dos arquivos executáveis.

O tamanho do arquivo executável do aplicativo de teste ao usar o WebView é estimado em 40 MB, enquanto ao usar CEF — 150 MB. Para comparação, este número é de 100 MB para Electron, 61 MB para Electrobun, e entre 2-10 MB para Tauri (no Electron é utilizado o CEF integrado ao aplicativo, enquanto em Electrobun e Tauri, o WebView do sistema). Um mecanismo para compartilhar um motor CEF comum entre diferentes aplicativos está em desenvolvimento, o que permitirá reduzir o tamanho dos arquivos executáveis.

O Deno Desktop oferece total compatibilidade com Node.js, a ecossistema NPM e frameworks web como Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start e Vite SSR. Fornece uma API para acessar APIs nativas de desktop, permitindo que o programa gerencie o tamanho, a posição e a visibilidade da janela, crie menus, anexe seus próprios manipuladores, exiba ícones na bandeja do sistema e painéis, e mostre diálogos nativos do sistema operacional. É possível compilar aplicações web na forma de programas de desktop sem alterar seu código, além de detectar automaticamente os frameworks web usados e realizar cross-compilation em um único sistema para Linux x64/arm64, Windows x64 e macOS x64/arm64. Para Linux, pacotes podem ser gerados nos formatos AppImage, deb e rpm.

Ao contrário do Electron, Electrobun e Tauri, o Deno Desktop utiliza um modelo de execução multithread para CEF ou um modelo baseado em grupos de processos para WebView, interagindo entre o backend e o código da interface gráfica através de canais dentro de um único processo. Existe um mecanismo embutido para verificação e instalação automática de atualizações, que carrega apenas os dados que mudaram em relação à versão anterior (aplicando patches binários baseados em bsdiff) e suporta rollback para a versão anterior em caso de falha ao iniciar uma nova versão.

Entre outras novidades do Deno 2.9:

  • Suporte na equipe 'deno install' para leitura direta de arquivos lock para facilitar a migração para o Deno a partir do npm, pnpm, yarn e Bun.
  • Suporte para importação de módulos CSS.
  • Implementação de compatibilidade com a plataforma Node.js 26.
  • Novos comandos 'deno link', 'deno unlink' e 'deno list'.
  • Suporte para a API Web Locks para aplicar bloqueios em recursos.
  • Ativação por padrão de um atraso de 24 horas (min-release-age=24h) antes da instalação de novas versões de dependências para proteção contra ataques via comprometimento de dependências.
  • Redução no tempo de inicialização (~2x), diminuição no consumo de memória (~2.2x) e aumento na taxa de transferência ao trabalhar com HTTP (~1.2x).



    Fonte: opennet.ru
Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster