Para tecnologias web no desenvolvimento de aplicativos de desktop, dois dos participantes mais promissores do jogo são Tauri e Electron. Vale ressaltar que cada um dos projetos visa fornecer ferramentas para a construção de aplicações desktop multiplataforma com o uso de tecnologias web, mas, ao mesmo tempo, o fazem de maneiras bastante diferentes umas das outras. Esta postagem tentará elaborar uma comparação técnica entre Tauri e Electron em termos de arquitetura, desempenho, segurança, experiência de desenvolvimento e suporte da comunidade.
Componentes principais: Electron é uma combinação de Chromium, um mecanismo de renderização da web de código aberto, e Node.js, um tempo de execução de JavaScript de código aberto. Ele produz um tempo de execução que possui todos os recursos para desenvolver GUIs de desktop por meio de tecnologias web.
Modelo de processo: Um aplicativo Electron executa um único processo Node.js denominado processo principal. Este processo gerencia eventos do ciclo de vida no aplicativo e pode gerar vários processos de renderização (um por janela do aplicativo) para lidar com a GUI.
Agregação: Como o Electron agrupa todo o Chromium e Node.js, os aplicativos tendem a ser relativamente grandes em tamanho.
Componentes principais: Tauri é uma estrutura bastante leve; ele usa apenas um componente webview do sistema operacional (usa WebView2 no Windows, WKWebView no macOS, WebKitGTK no Linux) para renderizar a IU e utiliza Rust para a lógica de backend.
Modelo de processo: Tauri separa o frontend (executando dentro do webview) do backend (escrito em Rust), melhorando a segurança e o desempenho.
Agregação: Os componentes nativos do webview que os aplicativos Tauri usam significam que eles são agrupados em um pacote muito menor em comparação com os aplicativos que agrupam um mecanismo de navegador completo.
Uso de memória: Os aplicativos Electron tendem a consumir mais memória por causa do mecanismo Chromium incluído e da sobrecarga de execução de vários processos.
Tempo de inicialização: O tempo de inicialização de um aplicativo Electron tende a ser lento porque primeiro é necessário iniciar todo o mecanismo do Chromium.
Desempenho em tempo de execução: Os aplicativos Electron às vezes são executados com menos eficiência devido ao mecanismo Chromium, que às vezes consome muitos recursos. Este é o caso, especialmente para aplicativos com muitos componentes de UI ou necessidades complexas de renderização.
Uso de memória: Os aplicativos Tauri geralmente consomem memória em quantidades menores, pois são alimentados pelo webview nativo e pelo backend leve do Rust.
Tempo de inicialização: Em geral, os aplicativos Tauri serão inicializados mais rapidamente graças ao tamanho menor do aplicativo e ao uso de componentes nativos de webview.
Desempenho em tempo de execução: Tauri será, portanto, capaz de aproveitar as vantagens do desempenho e dos recursos do Rust em relação à segurança - colocando-o em uma boa posição como uma potência por direito próprio para uso em ambientes com recursos limitados e aplicações que exigem alto desempenho.
Sandboxing: Embora os processos do renderizador Electron estejam em sandbox, o processo principal tem acesso completo ao sistema e apresenta algumas preocupações de segurança se não for tratado corretamente.
Superfície de vulnerabilidade: O mecanismo Chromium completo aumenta a superfície de ataque. Isso torna imperativo atualizar e atualizar frequentemente contra vulnerabilidades recém-descobertas.
IPC (Comunicação entre processos): O modelo de comunicação entre processos deve ser implementado cuidadosamente para permitir que os processos principais e de renderização se comuniquem com segurança, sem quaisquer falhas de segurança.
Sandboxing: A arquitetura do sandbox Tauri afasta a webview/UI do backend/lógica. Isso diminui inerentemente o risco de bugs de segurança.
Superfície de vulnerabilidade: A superfície de vulnerabilidade é menor, pois usa componentes nativos de webview no sistema quando comparado a um mecanismo de navegador completo que é integrado e incluído.
IPC: Tauri tem um mecanismo de comunicação entre processos mais seguro, graças à digitação forte do Rust e às garantias de segurança de memória que diminuem os riscos de problemas de segurança.
Ecossistema: Electron tem um ecossistema maduro com extensa documentação, inúmeros plugins e muitos módulos desenvolvidos pela comunidade.
Ferramentas: Ferramentas e bibliotecas compartilhadas para desenvolvimento web facilitam o trabalho dos desenvolvedores.
Depuração: Ferramentas como o Chrome DevTools vêm com o Electron e são muito fáceis de depurar.
Ecossistema: Tauri é um ecossistema que cresce a cada dia ao seu redor; o suporte e a documentação também aumentam a cada dia, mas ainda estão em seus estágios iniciais. Podemos compará-lo com uma versão anterior do ecossistema Electron.
Ferramentas: Tauri tem uma ótima integração com as modernas ferramentas de desenvolvimento web atuais, e seu back-end Rust pode ser gerenciado usando as ferramentas poderosas do Rust.
Depuração: As técnicas de depuração incluem ferramentas de depuração de webview e ferramentas de depuração Rust que são mais ricas por natureza, mas às vezes podem ser mais complicadas de configurar.
Adoção: Electron tem alta adoção em comparação com outros com muitos aplicativos de alto perfil (Slack, Visual Studio Code, Discord).
Comunidade: A grande e ativa comunidade em torno do Electron cria uma rede de suporte robusta com atualizações frequentes e uma série de recursos de terceiros.
Adoção: Tauri é mais recente, mas está em processo de adoção muito rápida devido à sua natureza leve e aos benefícios de segurança que traz.
Comunidade: O tamanho da comunidade de Tauri está crescendo com a quantidade de novas contribuições; na verdade, o projeto está mais do que ativo, mas certamente não tão grande quanto o do Electron.
Escolha entre Tauri e Electron dependendo das necessidades e limitações do seu projeto:
Electron será adequado para desenvolvedores que buscam um ecossistema maduro, práticas comuns de desenvolvimento web, usando JavaScript em geral e vasto suporte da comunidade. As vantagens mencionadas, no entanto, resultam em alto consumo de memória e tamanhos de aplicativos.
Tauri - use quando você se preocupa com desempenho, segurança e tamanhos pequenos de aplicativos, aproveitando ao máximo o Rust e os componentes nativos do webview. O ecossistema está se movendo rapidamente, mas pode exigir uma curva de aprendizado maior se os desenvolvedores forem novos no Rust.
Ambas as estruturas podem fornecer um bom aplicativo de desktop multiplataforma, e a melhor escolha dependerá das prioridades do seu projeto e da experiência da equipe de desenvolvimento.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3