← Volver al blog

Dioxus 0.8 y Wails v3 se enfrentan a Electron 42

Wails v3.0.0-alpha2.105, Dioxus 0.8 alpha y Electron 42 llegaron en cuestión de semanas en 2026, redefiniendo cómo se construyen las aplicaciones de escritorio multiplataforma.

Compartir: XFacebookLinkedInWhatsApp
Desliza para seguir leyendo

Un sprint de cinco semanas que redibujó el mapa de marcos de escritorio

En el espacio de solo cinco semanas, los tres marcos más observados para el desarrollo de escritorio multiplataforma cruzaron un hito significativo. Electron 42 se lanzó el 7 de mayo de 2026, con Chromium 148, Node.js 24 y soporte nativo de WebAuthn Touch ID. Dioxus 0.8.0-alpha.0 siguió el 19 de mayo, abriendo el nuevo ciclo de representación nativa acelerada por GPU del marco y completando la migración a Rust Edition 2024. Luego, el 21 de junio de 2026 — un día antes de que este artículo se publicara — el proyecto Wails lanzó v3.0.0-alpha2.105, su alfa más completa en términos de características, con soporte completo para iOS y Android, TypeScript como idioma predeterminado para nuevos proyectos, y un asistente de configuración interactivo. La convergencia no es coincidencia: el desarrollo de escritorio está experimentando su debate arquitectónico más profundo en años, y los tres proyectos están señalando que mediados de 2026 es el momento de ampliar su audiencia.

Las apuestas son reales. Decenas de millones de usuarios diarios ejecutan aplicaciones construidas en Electron — VS Code, Slack, Discord, Notion y 1Password, entre ellas — mientras que Wails y Dioxus están acumulando las estrellas de GitHub y el impulso comunitario que precede a la adopción generalizada. Una discusión ampliamente compartida en Hacker News en mayo de 2026 en la que un desarrollador comparaba los cinco marcos multiplataforma principales lado a lado atrajo cientos de comentarios y cristalizó la tensión central: Electron gana en madurez del ecosistema y familiaridad del desarrollador, pero pierde en tamaño binario, huella de memoria y tiempo de inicio contra todas las métricas que importan a nivel del sistema operativo.

Wails v3.0.0-alpha2.105: Escritorio impulsado por Go llega al territorio móvil

Lanzado el 21 de junio de 2026, Wails v3.0.0-alpha2.105 es la culminación de un ritmo de lanzamiento rápido que ha visto más de cien etiquetas alfa desde que se abrió la rama v3. La adición principal es el soporte móvil integral: las aplicaciones iOS y Android ahora se pueden construir a partir de la misma base de código Go que impulsa la compilación de escritorio, con diálogos nativos, acceso al portapapeles, autenticación biométrica, retroalimentación háptica, geolocalización, captura de cámara y ejecución en segundo plano, todos conectados a través de un nuevo puente de características móviles. El camino hacia este lanzamiento fue incremental y deliberado.

Alpha 101 (5 de junio) estableció la base de iOS con diálogos de mensajes nativos, métricas de pantalla reales, firma de código y empaque de .ipa. Alpha 103 (15 de junio) reorganizó el modelo de eventos de plataforma, introduciendo prefijos de eventos con espacios de nombres common:*, ios:* y android:* para el puente móvil. Alpha 104 (18 de junio) parcheó un fallo desencadenado cuando los métodos Go vinculados devolvían cadenas vacías en iOS. Alpha 105 completó el ciclo introduciendo application.System para la detección de plataforma en tiempo de ejecución, corrigiendo un fallo de minimización de Windows y un fallo de GTK de Linux, haciendo que TypeScript sea el idioma predeterminado en todas las plantillas de inicio, y publicando una guía para desarrolladores que desean integrar una configuración de Vite personalizada en lugar de las herramientas de agrupación de frontend incluidas en el marco.

¿Qué cambió entre Wails v2 y v3?

Wails v2 está en uso activo en producción hoy, pero v3 no es una actualización de punto — es un replanteamiento estructural. El cambio más visible es el soporte de múltiples ventanas: donde v2 limitaba cada aplicación a una sola ventana, v3 trata las ventanas como objetos de tiempo de ejecución de primera clase que se pueden crear, destruir, mostrar, ocultar y configurar individualmente, permitiendo paletas flotantes, paneles de editor secundarios, paneles de notificaciones y superficies de interfaz de usuario más complejas. El sistema de compilación ha sido completamente reemplazado: en lugar de ocultar los detalles de compilación dentro de un comando CLI monolítico, v3 expone cada paso de compilación como un comando de herramienta discreto, orquestado mediante la integración de Taskfile. Los desarrolladores ahora pueden personalizar la canalización en cualquier punto — una capacidad que los equipos empresariales con flujos de trabajo especializados de firma o notarización habían estado pidiendo desde que v2 se lanzó.

El nuevo asistente interactivo wails3 setup, introducido experimentalmente en alpha 102 y refinado en alpha 105, guía a los usuarios por primera vez a través de la verificación de dependencias e instalación de la cadena de herramientas móvil paso a paso, reduciendo significativamente la fricción que históricamente ha hecho que los entornos de compilación multiplataforma basados en Go sean intimidantes. El asistente ahora también acepta una bandera --json, permitiendo salida legible por máquina adecuada para aprovisionamiento automatizado de CI.

La arquitectura detrás de Wails

Wails ocupa un nicho distintivo en el ecosistema de escritorio. El backend de la aplicación está escrito en Go, un lenguaje compilado tipado estáticamente que produce binarios pequeños y autónomos sin sobrecarga de intérprete. El frontend se renderiza por el WebView nativo de la plataforma — WKWebView en macOS, WebView2 en Windows y WebKitGTK en Linux — en lugar de una instancia de Chromium incluida. Una aplicación Wails típica se envía en unos pocos megabytes como máximo en lugar de los 120–150 MB mínimos que requieren las aplicaciones de Electron, y el tiempo de inicio se mide en decenas de milisegundos en lugar de segundos. El compromiso es la consistencia de renderizado: los WebViews nativos se comportan ligeramente diferente entre plataformas y versiones de SO, ocasionalmente requiriendo soluciones de CSS o JavaScript que Electron, con su instantánea fija de Chromium, evita completamente.

"El modelo de concurrencia de Go hace que sea genuinamente agradable escribir la lógica de backend que alimenta una interfaz de usuario de escritorio. Los canales y goroutines se asignan limpiamente a interfaces controladas por eventos." — sentimiento recurrente en el foro de la comunidad de Wails y Discord

Dioxus 0.8.0-alpha.0: Renderización GPU y Rust 2024 llegan juntos

DioxusLabs etiquetó v0.8.0-alpha.0 el 19 de mayo de 2026, abriendo el ciclo de desarrollo 0.8 aproximadamente cuatro meses después del último parche de la serie 0.7. El lanzamiento se posiciona explícitamente como el comienzo de un ciclo en lugar de una vista previa completa en características, pero ya contiene cambios lo suficientemente significativos como para requerir una guía de migración dedicada — convirtiéndose en el alfa de Dioxus más rupturista estructuralmente desde que se lanzó el proyecto.

El renderizador GPU dioxus-native avanza significativamente

El cambio más arquitectónicamente significativo en el alfa 0.8 es la maduración de dioxus-native, el renderizador que pinta aplicaciones de Dioxus completamente en la GPU usando wgpu, la implementación de Rust de la API gráfica WebGPU. Las notas de lanzamiento describen una "enorme actualización de calidad" con renderización incremental, soporte de elementos personalizados y capacidades de renderización sustancialmente expandidas en comparación con lo que el preview 0.7 envió. Junto a esto, el proyecto Blitz — un motor de diseño HTML y CSS modular que el equipo de DioxusLabs demostró públicamente en Rustweek 2026 — se convierte en la columna vertebral de diseño para dioxus-native, llevando primitivos CSS familiares como flexbox, grid y modelado de texto al renderizador GPU sin requerir un motor de navegador completo en tiempo de ejecución.

La importancia de esta dirección es difícil de exagerar. Tauri, actualmente el alternativa de Electron más popular basada en Rust, aún renderiza su interfaz de usuario dentro de un WebView del sistema. Dioxus es el único marco importante en el ecosistema de Rust que persigue un camino creíble donde el WebView es completamente opcional: el mismo árbol de componentes Dioxus y modelo de estado basado en señales pueden dirigirse a la web mediante WebAssembly, escritorio mediante un WebView, escritorio mediante renderización GPU nativa y móvil — todo sin cambiar una línea de lógica de aplicación. Cuando dioxus-native alcance la estabilidad, daría a los desarrolladores de Rust una ruta de código único que produce cero dependencia de un motor de navegador en tiempo de ejecución.

Rust Edition 2024 y la migración objc2

El alfa 0.8 migra toda la base de código de Dioxus a Rust Edition 2024, la primera edición de lenguaje significativa desde 2021. La nueva edición introduce sintaxis de cierre asincrónico más limpia, manejo mejorado de duraciones de vida temporales y varios cambios ergonómicos de concordancia de patrones que se han discutido desde Rust 1.75. Junto a esto, el marco ha reemplazado sus vinculaciones FFI heredadas de Objective-C en macOS e iOS con objc2, un crate Rust moderno y de memoria segura para llamar a las API de plataforma de Apple directamente. La migración elimina una categoría completa de código inseguro en el backend de macOS y alinea a Dioxus con el enfoque que está siendo tomado por el equipo de Tauri, el proyecto Servo y otros proyectos Rust importantes dirigidos a plataformas de Apple.

La aplicación de parches en caliente — introducida como una característica experimental en Dioxus 0.7 — ahora está habilitada de forma predeterminada en el CLI del alfa 0.8. La característica permite a los desarrolladores editar código fuente de Rust y ver cambios reflejados en la aplicación en ejecución en tiempo de subsegundo, sin perder el estado de la aplicación. Combinado con el nuevo soporte de recarga en caliente de Cargo.toml y un observador de archivos dinámico, el ciclo de desarrollo 0.8 ahora se acerca a la velocidad que los desarrolladores de JavaScript dan por hecho con React o Svelte impulsados por Vite. Para un lenguaje compilado y tipado estáticamente, esto representa un cambio significativo en la ergonomía del desarrollador.

El roadmap 0.8: FFI, widgets nativos y un empujón hacia 1.0

El roadmap oficial 0.8 publicado en GitHub Discussions enumera varias características principales que el alfa aún no entrega. Un puente FFI de Swift, Kotlin y Java permitirá que las aplicaciones Dioxus llamen a las API nativas de plataforma directamente sin enrutarse a través de una capa web — permitiendo el uso de hojas de cámara del sistema, contactos, HealthKit y otras capacidades específicas de plataforma. La integración de widgets nativos en dioxus-native permitirá que controles de plataforma como NSTableView de macOS o ListView de Windows se incrusten dentro del árbol de componentes de Dioxus, mejorando la accesibilidad y fidelidad visual para interfaces de usuario de usuarios avanzados. El roadmap también enumera API nativas integrales que cubren cámara, geolocalización, OAuth y almacenamiento local, así como integración del IDE VSCode y Cursor para mostrar diagnósticos específicos de Dioxus y vistas previas de componentes directamente en el editor. El elemento más importante del roadmap es un objetivo declarado de "funcionalidad central 1.0 para autores de bibliotecas", una señal de que el proyecto se está moviendo hacia el tipo de estabilidad de API que los autores de bibliotecas de terceros necesitan antes de poder enviar sin temor a cambios disruptivos entre versiones menores de Dioxus.

No existe cronograma oficial para el lanzamiento estable de 0.8, pero el equipo ha indicado que los bloques de construcción de API nativas están llegando incrementalmente en lanzamientos alfa, con contribuciones comunitarias — que el equipo dice que se han acelerado significativamente desde principios de 2026 — empujando características hacia adelante más rápido de lo que el equipo central esperaba.

Electron 42 consolida el estándar de producción para JavaScript de escritorio

Mientras Dioxus y Wails iteran en alfa, Electron 42, lanzado el 7 de mayo de 2026, define cómo se ven las aplicaciones de escritorio en producción para el ecosistema de JavaScript. El lanzamiento se envía con Chromium 148.0.7778.96, Node.js 24.15.0 y V8 14.8. La rama estable alcanzó v42.4.1 el 16 de junio de 2026, actualizando a Chromium 148.0.7778.265 y Node.js 24.16.0. Mientras tanto, v43.0.0-beta.5 ya está en pruebas con Chromium 150.0.7871.13, sugiriendo que Electron 43 alcanzará la estabilidad a finales del verano de 2026.

Adiciones clave en Electron 42

El cambio más orientado al desarrollador en Electron 42 es una reestructuración de cómo el marco gestiona su propio binario. Anteriormente, el paquete npm de electron ejecutaría un script de postinstalación que descargaría el binario de Electron inmediatamente después de npm install. En la versión 42, el binario se descarga dinámicamente en el primer lanzamiento, permitiendo que Electron se instale con la bandera --ignore-scripts — un requisito de larga data para despliegues empresariales que operan en entornos de CI restringidos donde los scripts de postinstalación están bloqueados por política de seguridad. La descarga se cachea normalmente en ejecuciones posteriores, por lo que no hay costo de latencia en tiempo de ejecución para los usuarios finales.

WebAuthn Touch ID ahora es una API de Electron de primera clase en macOS. Los desarrolladores pueden habilitar autenticación biométrica a través de app.configureWebAuthn({ touchID: { keychainAccessGroup } }), una capacidad que previamente requería enviar un módulo nativo personalizado. Las animaciones de capa de vista llegan a través de view.setBounds() con opciones de animación, y un nuevo método view.setBackgroundBlur() habilita el tratamiento de vidrio esmerilado que aplicaciones del sistema macOS como Finder y Notes usan generalizadamente. En el frente de notificaciones, Electron 42 migra desde la API NSUserNotification deprecada al sistema moderno UNNotification, agregando Notification.getHistory() y agrupación a través de opciones id y groupId. La migración viene con una nueva restricción: las notificaciones de macOS ahora requieren que la aplicación esté firmada con código, lo que podría afectar compilaciones de desarrollo sin firmar que dependen de notificaciones de escritorio para retroalimentación del usuario.

El debate continuo sobre la huella de Electron

La adopción de Electron 42 de Node.js 24 y Chromium 148 también significa que cada aplicación de Electron ahora incluye un motor de navegador que — por sí solo — es más grande que la mayoría de las aplicaciones completas de Wails o Tauri. Una aplicación Electron mínima se envía en aproximadamente 120–150 MB en disco; las aplicaciones de producción como Slack o Discord consumen bien más de 300 MB de RAM en uso típico antes de cargar cualquier dato del usuario. Estos números no han cambiado significativamente a pesar de optimizaciones incrementales del motor, y siguen siendo el argumento principal que los marcos competidores plantean en conversaciones de desarrolladores. Para equipos donde el tamaño binario o el consumo de memoria es una restricción de producto dura — quioscos incrustados, dispositivos de baja memoria o aplicaciones dirigidas a regiones con ancho de banda caro — la huella de Electron es un descalificador genuino en lugar de un compromiso aceptable.

Enfrentamiento de arquitecturas: Tres apuestas diferentes sobre el futuro del escritorio

Evaluados en conjunto, Electron, Wails y Dioxus representan tres hipótesis fundamentalmente diferentes sobre cómo se ve el tiempo de ejecución de escritorio multiplataforma ideal en 2026. Comprender esas hipótesis hace que la elección entre ellos sea menos una cuestión de preferencia y más una cuestión de qué compensaciones se alinean con las restricciones de un proyecto dado.

Electron: Apuesta al navegador como kit de herramientas de interfaz de usuario universal

La hipótesis de Electron es que la plataforma web ya es el kit de herramientas de interfaz de usuario de propósito general más eficaz, y el enfoque correcto es incluir una copia controlada y versionada de Chromium junto a un tiempo de ejecución de Node.js y dar a los desarrolladores acceso completo a ambos. Cualquier paquete npm, cualquier marco CSS, cualquier empaquetador de JavaScript funciona exactamente como lo hace en la web. El costo es que cada aplicación de Electron se envía con un navegador completo: Chromium más Node.js más el paquete de JavaScript de la aplicación. Electron es la opción correcta cuando el equipo de desarrollo ya vive en el ecosistema de JavaScript, el peso binario es un comercio aceptable por acceso al registro npm completo, y la aplicación necesita coincidir con paridad de características con una versión web del mismo producto — como VS Code, Notion y Figma todos lo hacen.

Wails: Apuesta al WebView del sistema con rendimiento de Go

La hipótesis de Wails es que los sistemas operativos modernos ya envían un WebView capaz y mantenido activamente, y los desarrolladores deberían usarlo en lugar de incluir el propio. El frontend sigue siendo HTML, CSS y JavaScript — React, Vue, Svelte y TypeScript funcionan fuera de la caja — pero la renderización se delega a WKWebView, WebView2 o WebKitGTK dependiendo de la plataforma. El backend es Go compilado, que produce un binario nativo sin dependencia de intérprete. Las aplicaciones se envían en unos pocos megabytes, se inician en milisegundos y usan una fracción de la memoria de un equivalente de Electron. Con TypeScript ahora el predeterminado en plantillas de inicio de v3 y expansión móvil en marcha, Wails está claramente dirigido a desarrolladores que desean productividad de frontend similar a JavaScript con rendimiento de backend de Go — la misma audiencia que actualmente usa Flutter para móvil y busca un camino hacia el escritorio que no requiera aprender Dart.

Dioxus: Apuesta a Rust y salta el navegador completamente

Dioxus toma la posición más radical: ¿y si no necesitaras un navegador en absoluto — ni siquiera un WebView del sistema? El renderizador dioxus-native del marco dibuja la interfaz de usuario directamente en la GPU a través de wgpu, con un motor de diseño HTML y CSS impulsado por Blitz que reimplementa solo lo suficiente del modelo de diseño del navegador para hacer que los primitivos de estilo familiar funcionen sin un tiempo de ejecución de navegador. El resultado es una aplicación con cero dependencia de un motor de navegador, un binario nativo único, inicio instantáneo y la capacidad de ejecutarse en plataformas donde incrustar un WebView es difícil o imposible. El riesgo es que dioxus-native todavía está madurando — el alfa 0.8 representa un paso importante hacia adelante, pero la paridad de renderización completa con un motor de navegador sigue siendo un trabajo en progreso. El marco también requiere conocer Rust, lo que conlleva una curva de aprendizaje más pronunciada que Go, y una mucho más pronunciada que JavaScript. Para equipos ya trabajando en Rust, sin embargo, Dioxus ofrece un camino hacia aplicaciones verdaderamente portátiles libres de navegador que también se compilan a WebAssembly para la web.

Impulso comunitario y qué viene después

Los tres proyectos muestran aceleración medible en la participación comunitaria durante la primera mitad de 2026. El repositorio de GitHub de Dioxus ha crecido pasando 25,000 estrellas, y el hilo de discusión del roadmap 0.8 ha atraído a colaboradores externos cuyas solicitudes de extracción han — según el equipo central — acelerado la entrega de bloques de construcción de API nativa por adelantado de lo programado. Wails ha cruzado 30,000 estrellas y su servidor de Discord es visiblemente más activo en 2026 que en cualquier año anterior. Electron, pasada la fase en la que los recuentos de estrellas son señales relevantes, se beneficia en cambio de su base instalada: decenas de millones de usuarios ejecutan aplicaciones de Electron diariamente, y la gobernanza del marco bajo la Fundación OpenJS da a los adoptantes empresariales las garantías de estabilidad a largo plazo que los proyectos más nuevos aún no pueden ofrecer.

Los próximos hitos principales a vigilar: Electron 43 está en beta (v43.0.0-beta.5 en el momento de escribir esto) con Chromium 150 y se espera que alcance la estabilidad antes de finales del verano de 2026. Dioxus 0.8 estable no tiene una fecha comprometida, pero el equipo está lanzando mejoras de API nativa incrementalmente a través del ciclo alfa. Wails v3 ha estado en alfa durante más de dieciocho meses; el cambio de la nomenclatura alfa a alfa2 en etiquetas recientes sugiere que el proyecto está entrando en una segunda fase más enfocada en la estabilidad antes de beta. Con TypeScript ahora el predeterminado, soporte móvil aterrizando y el asistente de configuración enviando, v3 está más cerca de un lanzamiento estable que en cualquier punto anterior en su desarrollo.

Para desarrolladores que eligen un marco hoy, el consenso comunitario es consistente en los foros, servidores de Discord e hilos de Hacker News que discutieron estos lanzamientos en mayo y junio de 2026: elige Electron si tu equipo es nativo de JavaScript y el tamaño binario no es una restricción dura; elige Wails si quieres productividad de frontend de pila web con rendimiento de backend de Go y peso de envío mínimo; elige Dioxus si estás construyendo en Rust y quieres un código único que pueda dirigirse a web, escritorio y móvil sin vincular tu tiempo de ejecución a un motor de navegador. Ninguna de estas opciones es incorrecta, pero la brecha entre ellas — en rendimiento, ecosistema y madurez — se está cerrando más rápido en 2026 que en cualquier año anterior.