¿Cuál es la mejor alternativa a Electron? Vamos a descubrirlo.

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

스크립트

00:00:00crear aplicaciones de escritorio multiplataforma solía significar recurrir a Electron, pero hoy en día estamos
00:00:04mimados por la cantidad de opciones, así que para aclarar cualquier confusión, hoy compararemos las tres mejores alternativas para
00:00:09crear aplicaciones de escritorio multiplataforma: veremos Tauri escrito en Rust, Electro Bun del equipo de Bun,
00:00:14Deno Desktop, la nueva oferta de Deno; también usaremos Electron como base, y si les
00:00:20gustaría ver otra herramienta analizada en este canal, háganmelo saber en los comentarios.
00:00:23Compararemos cuatro aspectos: tamaño del paquete, rendimiento de inicio, rendimiento en ejecución y experiencia
00:00:29del desarrollador. He creado la misma aplicación cuatro veces, una herramienta de grabación de pantalla que permite editar los resultados
00:00:35en una línea de tiempo y exportarlos a MP4. He elegido específicamente este tipo de app porque el procesamiento de video
00:00:40puede llevar a estos instrumentos al límite. Ahora, claro, no todo se reduce al rendimiento,
00:00:44las habilidades de tu equipo y el tipo de producto que estés creando influirán en el
00:00:49framework que elijas, pero espero que esto te sirva de guía sobre qué esperar.
00:00:58Así que echemos un vistazo rápido a una demostración de la aplicación que construimos. Comenzamos lanzando
00:01:03nuestra app, podemos elegir qué pantalla grabar y luego presionar el botón de grabar. Ahora podemos hacer una grabación corta
00:01:08de la pantalla. Una vez terminado, presionamos detener y aparecerá una ventana con nuestra grabación en la
00:01:12línea de tiempo. Luego podemos recortarla para eliminar espacios muertos y presionar exportar para obtener un MP4. La aplicación es
00:01:18en realidad increíblemente simple, pero debido a que usamos múltiples API, grabando y procesando video y
00:01:24renderizando la interfaz, esta debería ser una prueba bastante decente. Así que lo primero que vamos a revisar es el
00:01:28tamaño del paquete, y recuerden que todas estas apps ofrecen la misma funcionalidad. Electron, como base, pesa 323
00:01:35megabytes, Tauri llega a solo 57 megabytes, Electro Bun pesa 418 megabytes y Deno 111 megabytes.
00:01:44Todas tienen también FFmpeg integrado para exportar a MP4, lo cual añade 45 megabytes solo por eso. Y Electro Bun es
00:01:52tan grande porque tuve que incluir Chromium con ella. Lo intenté de verdad, pero literalmente no pude lograr
00:01:56que la grabación de pantalla funcionara con el WebView nativo del sistema, específicamente para grabar desde JavaScript.
00:02:01Necesitas la API de captura de pantalla y la función getDisplayMedia. Le pides al navegador la pantalla,
00:02:06te entrega un flujo, el grabador de medios lo codifica y así es como lo hacen Electron y Deno. Electro Bun
00:02:12no incluye esa API en absoluto, así que la única forma de acceder a ella es reintroducir Chromium y eso
00:02:17añade 200 megabytes extra de peso muerto. La API de Deno sí implementó esto, así que es el mismo código,
00:02:24pero sin Chromium, y por eso el tamaño del paquete de Deno termina siendo de unos 100 megabytes, y el de Electro
00:02:30Bun termina siendo más cercano a los 400. Rust no necesitó nada de esto porque Tauri no graba desde
00:02:35el WebView en absoluto; lo hace todo a través del backend mediante el Kit de captura de pantalla nativo. Este es
00:02:40el mismo framework de macOS que usa QuickTime, y se graba directamente desde el backend. Le entregas
00:02:46una pantalla, un códec y una ruta de archivo, y él mismo escribe el archivo. El WebView es solo la interfaz, nunca
00:02:52toca un solo fotograma, y también obtienes cosas gratis que el build de JavaScript tiene que manejar.
00:02:56El Kit de captura de pantalla mezcla tu micrófono y el audio del sistema él mismo y finaliza un MP4 adecuado. También
00:03:02dejé FFmpeg dentro de la app de Tauri para poder exportar a diferentes formatos, pero técnicamente eso es
00:03:07opcional. Bien, ahora podemos lanzar estas apps para detectar el tiempo de inicio; escribí un script
00:03:13que hace esto 10 veces para poder obtener la mediana. Electron, como base, tardó 273 milisegundos, Tauri
00:03:19tardó 311 milisegundos, Electro Bun 773 milisegundos y Deno 242 milisegundos.
00:03:29La sorpresa para mí fue que Tauri no fuera la más rápida, está solo un poco por detrás de Electron, y Deno
00:03:34le ganó a todos. La suposición sería que Rust más el WebView del sistema significaría un inicio
00:03:39instantáneo, pero como el motor de renderizado tiene que arrancar de todos modos, probablemente eso es lo que contribuye a
00:03:44la velocidad de inicio ligeramente más lenta. Electro Bun es la excepción, casi tres veces Electron: está iniciando
00:03:50un lanzador que arranca Bun, que arranca Chromium; tres entornos de ejecución en cadena, y realmente se nota.
00:03:56Ahora veamos la memoria después del lanzamiento, una vez que la app está funcionando. Electron es la base
00:04:01de nuevo: 128 megabytes, Tauri alcanzó 109 megabytes, Electro Bun 208 megabytes y Deno 98
00:04:10megabytes. Así que Deno y Tauri estaban básicamente a la par, y Electro Bun duplicaba casi todo
00:04:15lo demás. Para Tauri, eso no es ni de cerca la mejora de 10 veces que implica su marketing. En disco, sí, es mucho
00:04:21más pequeña, pero el consumo de memoria real cuando la aplicación está corriendo es mucho más similar a las otras
00:04:26herramientas. Una cosa a tener en cuenta al hacer estas pruebas tú mismo: Tauri usa el
00:04:31WebView del sistema y esos procesos no son hijos de tu app; macOS los inicia por separado, así que
00:04:36el Monitor de Actividad muestra a Tauri con unos 36 megabytes, pareciendo que supera a Electron tres veces,
00:04:42pero no es así. Cuando sumas todos esos procesos, esos 36 megabytes se acercan más a los 109 megabytes
00:04:48que registramos en la prueba. Respecto a la grabación de pantalla, noté un rendimiento mucho mejor
00:04:53en la app de Tauri, probablemente porque no estamos grabando los datos en el WebView
00:04:58y luego transfiriéndolos a través de un puente; en cambio, todo se graba con el SDK nativo que viene
00:05:04con el sistema. Si quieres acercarte a grabaciones de 60 FPS, entonces Rust y Tauri son el
00:05:10camino a seguir. Ahora veamos la experiencia del desarrollador, y debido a las diferencias de cada plataforma, esta app
00:05:15simple no fue para nada fácil de construir. En general, Electron y Tauri fueron las más fáciles
00:05:20de implementar, pero Deno y Electro Bun tuvieron muchos problemas y fallos del sistema. En Deno, cuando
00:05:26iniciábamos una grabación y luego ocultábamos la app, toda la aplicación simplemente se cerraba. Creo que es porque
00:05:30cuando ninguna pantalla permanece visible, Deno asume que la aplicación terminó y simplemente termina
00:05:36todo el proceso, así que la solución improvisada fue simplemente ocultar la vista fuera de la pantalla.
00:05:41Electro Bun tuvo todos estos problemas por necesitar empaquetar Chromium para la grabación de pantalla, y por alguna
00:05:46razón el paquete depende de Three.js y Babylon.js, que son para renderizado 3D, lo que contribuyó al
00:05:53abultado tamaño del paquete. Así que, en resumen, personalmente elegiría Tauri, pero si de verdad no quieres programar
00:05:58en Rust, entonces Electron sigue siendo la plataforma madura para desarrolladores de TypeScript. Deno se ve bien, pero creo que
00:06:04a la plataforma aún le falta tiempo para madurar, y Electro Bun, para mí, fue la peor de todas.
00:06:09Espero que puedas sacar tus propias conclusiones. Cuéntame qué piensas en los comentarios. También
00:06:13hicimos un video entero sobre Deno Desktop, así que si quieres aprender más sobre eso, haz clic en este
00:06:18video de aquí. De lo contrario, yo soy Warren de BetterStack, gracias por ver y nos vemos la próxima vez.

핵심 요약

Tauri destaca como la alternativa más eficiente en tamaño de paquete y rendimiento de grabación, mientras que Electron se mantiene como la opción más robusta para proyectos basados en TypeScript.

하이라이트

  • Electron pesa 323 MB, superado por Tauri con 57 MB, Deno con 111 MB y Electro Bun con 418 MB.

  • El tiempo de inicio es más rápido en Deno con 242 ms, seguido por Electron con 273 ms, Tauri con 311 ms y Electro Bun con 773 ms.

  • El consumo de memoria RAM tras el lanzamiento registra 98 MB en Deno, 109 MB en Tauri, 128 MB en Electron y 208 MB en Electro Bun.

  • Tauri ofrece un rendimiento superior en la grabación de pantalla al utilizar el SDK nativo del sistema en lugar del WebView.

  • Electron sigue siendo la opción más madura para desarrolladores de TypeScript que evitan Rust.

타임라인

Configuración y metodología

  • Cuatro herramientas evaluadas: Electron, Tauri, Electro Bun y Deno Desktop.
  • Aplicación de prueba: herramienta de grabación de pantalla con edición de línea de tiempo y exportación MP4.
  • Criterios de comparación: tamaño del paquete, velocidad de inicio, memoria en ejecución y experiencia del desarrollador.

Se desarrolló la misma aplicación de grabación de pantalla en los cuatro entornos para poner a prueba el procesamiento de video y la manipulación de APIs. La selección de esta aplicación busca llevar al límite los frameworks evaluados debido a su uso intensivo de hardware.

Tamaño del paquete

  • Tauri ocupa 57 MB, posicionándose como la opción más ligera.
  • Electro Bun alcanza 418 MB al requerir Chromium para la API de captura de pantalla.
  • La grabación en Tauri ocurre mediante el backend nativo, evitando el uso del WebView para la captura.

El tamaño del paquete varía significativamente según cómo cada herramienta maneja la API de captura de pantalla. Electron y Deno utilizan el motor de navegador para la grabación, mientras que Tauri emplea el framework nativo de macOS (Kit de captura de pantalla), lo que elimina dependencias pesadas.

Velocidad de inicio y memoria

  • Deno inicia en 242 ms, siendo el más rápido de los cuatro.
  • Electro Bun presenta un inicio lento de 773 ms debido a la ejecución en cadena de tres entornos.
  • El consumo de memoria en ejecución es similar entre Tauri, Deno y Electron.

Aunque Tauri es más ligero en disco, su rendimiento de memoria en ejecución es comparable al de sus competidores una vez que se contabilizan todos los procesos del sistema. La velocidad de inicio de Tauri se ve ligeramente afectada por la necesidad de arrancar el motor de renderizado.

Rendimiento y experiencia del desarrollador

  • Tauri permite grabaciones de mayor calidad al evitar puentes de transferencia de datos con el WebView.
  • Deno y Electro Bun presentan inestabilidad, incluyendo cierres inesperados al ocultar la interfaz.
  • Tauri se recomienda por su eficiencia, mientras que Electron destaca en madurez para equipos TypeScript.

El uso del SDK nativo proporciona a Tauri una ventaja técnica en la captura de video a 60 FPS. A pesar de las ventajas de Tauri, su implementación requiere conocimientos de Rust, posicionando a Electron como la alternativa preferida por madurez y ecosistema para quienes no dominan dicho lenguaje.

커뮤니티 글

모든 글 보기