Para las tecnologías web en el desarrollo de aplicaciones de escritorio, dos de los participantes más prometedores en el juego son Tauri y Electron. Vale la pena señalar que cada uno de los proyectos tiene como objetivo proporcionar herramientas para construir aplicaciones de escritorio multiplataforma con el uso de tecnologías web, pero al mismo tiempo lo hacen de maneras bastante diferentes entre sí. Esta publicación intentará desarrollar una comparación técnica entre Tauri y Electron en términos de arquitectura, rendimiento, seguridad, experiencia de desarrollo y soporte comunitario.
Componentes principales: Electron es una combinación de Chromium, un motor de renderizado web de código abierto, y Node.js, un tiempo de ejecución de JavaScript de código abierto. Produce un tiempo de ejecución que tiene todas las características para desarrollar GUI de escritorio a través de tecnologías web.
Modelo de proceso: Una aplicación de Electron ejecuta un único proceso de Node.js denominado proceso principal. Este proceso gestiona eventos del ciclo de vida en la aplicación y puede generar múltiples procesos de representación (uno por ventana de la aplicación) para manejar la GUI.
Agrupación: Debido a que Electron agrupa la totalidad de Chromium y Node.js, las aplicaciones tienden a ser de tamaño relativamente grande.
Componentes principales: Tauri es un marco bastante liviano; utiliza solo un componente de vista web del sistema operativo (usa WebView2 en Windows, WKWebView en macOS, WebKitGTK en Linux) para representar la interfaz de usuario y utiliza Rust para la lógica de backend.
Modelo de proceso: Tauri separa el frontend (que se ejecuta dentro de la vista web) del backend (escrito en Rust), lo que mejora la seguridad y el rendimiento.
Agrupación: Los componentes nativos de vista web que utilizan las aplicaciones Tauri significan que se agrupan en paquetes mucho más pequeños en comparación con las aplicaciones que incluyen un motor de navegador completo.
Uso de memoria: Las aplicaciones de Electron tienden a consumir más memoria debido al motor Chromium incluido y la sobrecarga de ejecutar múltiples procesos.
Tiempo de inicio: El tiempo de inicio de una aplicación Electron tiende a ser lento porque primero tiene que iniciar todo el motor Chromium.
Rendimiento en tiempo de ejecución: Las aplicaciones de Electron a veces se ejecutan de manera menos eficiente debido al motor Chromium, que a veces consume muchos recursos. Este es el caso, especialmente para aplicaciones con muchos componentes de interfaz de usuario o necesidades de renderizado complejas.
Uso de memoria: Las aplicaciones Tauri generalmente consumen memoria en cantidades más pequeñas, ya que funcionan con la vista web nativa y el backend liviano de Rust.
Tiempo de inicio: En general, las aplicaciones Tauri se iniciarán más rápido gracias a un tamaño de aplicación más pequeño y al uso de componentes de vista web nativos.
Rendimiento en tiempo de ejecución: Tauri podrá así aprovechar el rendimiento y las características de Rust con respecto a la seguridad, lo que lo posicionará como una potencia por derecho propio para su uso en entornos con recursos limitados y aplicaciones que exigen alto rendimiento.
Sandboxing: Si bien los procesos de renderizado de Electron están aislados, el proceso principal tiene acceso completo al sistema e introduce algunos problemas de seguridad si no se maneja adecuadamente.
Superficie de vulnerabilidad: El motor Chromium completo se suma a la superficie de ataque. Esto hace que sea imperativo actualizar y actualizar con frecuencia contra vulnerabilidades recién encontradas.
IPC (Comunicación entre procesos): El modelo de comunicación entre procesos debe implementarse cuidadosamente para permitir que los procesos principal y de renderizado se comuniquen de forma segura sin ningún problema de seguridad.
Sandboxing: La arquitectura de Tauri Sandbox aleja la vista web/UI del backend/lógica. Esto inherentemente disminuye el riesgo relacionado con errores de seguridad.
Superficie de vulnerabilidad: La superficie de vulnerabilidad es menor ya que utiliza componentes de vista web nativos en el sistema en comparación con un motor de navegador completo integrado e integrado.
IPC: Tauri tiene un mecanismo de comunicación entre procesos más seguro, gracias a las sólidas garantías de seguridad de memoria y escritura de Rust que reducen los riesgos de problemas de seguridad.
Ecosistema: Electron tiene un ecosistema maduro con documentación extensa, innumerables complementos y una gran cantidad de módulos desarrollados por la comunidad.
Herramientas: Las herramientas y bibliotecas compartidas para el desarrollo web facilitan el trabajo a los desarrolladores.
Depuración: Herramientas como Chrome DevTools vienen incluidas con Electron y es bastante fácil de depurar.
Ecosistema: Tauri es un ecosistema, que crece cada día a su alrededor; el soporte y la documentación también aumentan día a día, pero aún se encuentra en sus primeras etapas. Podemos compararlo con una versión anterior del ecosistema Electron.
Herramientas: Tauri tiene una buena integración con las modernas herramientas de desarrollo web actuales y su backend de Rust se puede administrar utilizando las potentes herramientas de Rust.
Depuración: Las técnicas de depuración incluyen herramientas de depuración de vistas web y herramientas de depuración de Rust que son más ricas en naturaleza pero que a veces pueden ser más complicadas de configurar.
Adopción: Electron tiene una alta adopción en comparación con otros con muchas aplicaciones de alto perfil (Slack, Visual Studio Code, Discord).
Comunidad: La gran y activa comunidad que rodea a Electron constituye una sólida red de soporte con actualizaciones frecuentes y una gran cantidad de recursos de terceros.
Adopción: Tauri es más nuevo pero está en proceso de adopción muy rápida debido a su naturaleza liviana y los beneficios de seguridad que brinda.
Comunidad: El tamaño de la comunidad de Tauri está creciendo con la cantidad de nuevas contribuciones; de hecho, el proyecto está más que activo, pero seguramente no es tan grande como el de Electron.
Elige entre Tauri y Electron dependiendo de las necesidades y limitaciones de tu proyecto:
Electron será adecuado para desarrolladores que apuntan a un ecosistema maduro, prácticas comunes de desarrollo web, uso integral de JavaScript y un amplio apoyo de la comunidad. Sin embargo, las ventajas mencionadas resultan en un alto consumo de memoria y tamaños de aplicaciones.
Tauri: utilícelo cuando le importe el rendimiento, la seguridad y los tamaños de aplicaciones pequeños aprovechando al máximo Rust y los componentes nativos de vista web. El ecosistema avanza rápidamente, pero podría requerir una mayor curva de aprendizaje si los desarrolladores son nuevos en Rust.
Ambos marcos pueden proporcionar una buena aplicación de escritorio multiplataforma y la mejor opción dependerá de las prioridades de su proyecto y de la experiencia del equipo de desarrollo.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3