15 pontos por GN⁺ 2024-11-22 | 5 comentários | Compartilhar no WhatsApp
  • O Electrobun tem como objetivo oferecer uma solução completa para criar, atualizar e distribuir aplicações desktop multiplataforma ultrarrápidas e leves escritas em TypeScript
  • Usa bun para executar o processo principal, empacotar o TypeScript da webview e inclui bindings nativos escritos em zig
  • Principais recursos

    • TypeScript: é possível escrever TypeScript para o processo principal e para a webview, facilitando o trabalho com uma única linguagem.
    • Rápido: o isolamento entre os processos principal e da webview garante segurança e desempenho, além de permitir implementar com facilidade RPCs rápidas e tipadas.
    • Pequeno: com bundles autoextraíveis de cerca de 12 MB e atualizações de aplicativo de apenas 4 KB, permite lançar versões com frequência reduzindo os custos de banda.
    • Integração completa: oferece um fluxo de trabalho totalmente integrado que permite começar a escrever código em 5 minutos e fazer o deploy em 10 minutos.

5 comentários

 
tsboard 2024-11-27

Quanto mais usei o Bun, mais passei a gostar dele. Acima de tudo, parece admirável que ele ainda siga fielmente seu objetivo de funcionar rapidamente. Espero que este projeto dê certo.

 
aer0700 2024-11-23

Talvez seja uma das tentativas de reescrever em bunjs coisas que antes foram desenvolvidas com nodejs?
Ainda não usei o Bun e, além disso, já estou criando coisas em node e também não tenho planos de migrar o que fiz para Bun...
Mas vai saber daqui a 10 anos. Por via das dúvidas, acho que vale mexer um pouco nele.

 
tinywolf 2024-11-23

O Wails também é razoavelmente útil para usar de vez em quando.

 
pmc7777 2024-11-22

É bom ver tentativas frequentes em uma linha parecida com a do Tauri, mas com propostas diferentes.

 
GN⁺ 2024-11-22
Opiniões no Hacker News
  • O Electrobun é parecido com o Tauri, mas usa Zig para implementar as partes rápidas e nativas, enquanto foca mais no frontend/UI

    • É uma proposta interessante, mas exige uma quantidade enorme de trabalho
  • O desenvolvedor do Electrobun menciona que o projeto está em estágio inicial e que o roadmap precisa ser atualizado

    • Assim como o Tauri, usa a webview do sistema e não empacota o Chromium
    • Assim como o Electron, usa o Bun como processo principal, permitindo usar TypeScript no contexto principal e no navegador
    • Bindings nativos escritos em C/Objective-C são envolvidos por wrappers em Zig e executados pelo processo do Bun
    • O objetivo é ser multiplataforma, mas o foco está primeiro na estabilidade
    • A CLI cuida de atualizações, assinatura de código etc., e pode gerar artefatos de build para upload em S3 ou hosts de arquivos estáticos
    • Gera automaticamente atualizações de 4 KB por meio de uma implementação de bsdiff otimizada em Zig
    • Minimiza o tamanho do download inicial com um mecanismo próprio de autoextração em Zig usando Zstd
    • Fornece um mecanismo de RPC criptografado no qual basta escrever as assinaturas dos métodos e os handlers entre o Bun e o processo do navegador
    • Com uma implementação de OOPIF, é possível embutir contextos isolados de navegador com bom desempenho e fáceis de usar por meio do elemento HTML <electrobun-webview>
  • Há quem tenha curiosidade sobre como os recursos específicos de cada sistema operacional são gerenciados em TypeScript puro e que diferenças de tamanho e velocidade existem em comparação com o Tauri

  • Há perguntas sobre o motor de renderização do Electrobun, e o nome do projeto sugere Electron, mas isso não é mencionado

    • O app Electrobun Playground tem 50,4 MB, sendo que a maior parte disso é o runtime do Bun
  • Há opiniões de que será interessante acompanhar o crescimento do Electrobun; a pessoa não pretende entrar de imediato, mas avalia o projeto como excelente

  • Há a opinião de que o Electrobun é basicamente um Electron com Node.js trocado por Bun e Chromium trocado por WebView

  • Há opiniões de que quanto mais alternativas para criar apps multiplataforma, melhor

  • Há quem pergunte se o Electrobun é apenas mais um framework baseado em webview, como NeutralinoJS, Electrino e DeskGap, e quais vantagens ele teria além de usar Bun no lugar de Node

    • Sugere-se que, para apps desktop multiplataforma realmente leves, é melhor usar frameworks nativos sem webview, como Qt, GTK, wxWidgets e FLTK 1.4
  • Há preocupações com problemas de desempenho causados pelo isolamento entre o processo principal e o processo da webview

    • É preciso compartilhar dados usando uma ponte de IPC, o que exige copiar todos os dados compartilhados
    • Por exemplo, ao decodificar vídeo com ffmpeg, seria necessário copiar cada imagem decodificada antes de renderizar cada frame
  • Usar Bun como alternativa no lugar do Node.js do Electron é visto como algo positivo, mas ser melhor que o Electron é considerado uma barra muito baixa

    • Menciona-se estar esperando o Bun funcionar no FreeBSD, algo que está na lista de desejos de Natal