Saltar al contenido

Candidato a lanzamiento de Tauri 2.0

Estamos muy orgullosos de anunciar finalmente la primera candidata a lanzamiento (release candidate) para la nueva versión principal de Tauri.

Después de más de medio año de versiones beta, tras más de un año de versiones alpha, por fin estamos en el punto en el que consideramos que Tauri 2 se ha estabilizado y ya no esperamos cambios de ruptura.

Queremos utilizar un periodo de candidata a lanzamiento comparativamente corto para centrarnos en nuestra documentación y en correcciones de errores importantes, que han sido reportadas por nuestra increíble comunidad y miembros del grupo de trabajo.

Puedes encontrar un TL;DR simplificado al final de esta publicación.

El camino hacia la versión estable y más allá

Sección titulada “El camino hacia la versión estable y más allá”

Con esta candidata a lanzamiento queremos comunicar nuestras expectativas y cronograma para el lanzamiento estable.

Nos han preguntado incontables veces “¿Cuándo Tauri 2.0?” y siempre dimos respuestas amplias. Especialmente en proyectos de código abierto, prometer demasiado puede ser una forma rápida de agotar a los desarrolladores y mantenedores o llevar a comentarios de enojo por parte de adoptantes decepcionados.

Esta es una de las razones de la larga etapa alpha y beta y de por qué esperamos con la candidata a lanzamiento, ya que nos esforzamos por hacer las cosas bien y fáciles de usar.

Otra razón es que cometimos el error de prometer demasiado para esta versión principal con “móvil como ciudadano de primera clase” y nos dimos cuenta a lo largo de los últimos meses de que solo podemos construir la base para móvil por nuestra cuenta y necesitamos iterar en esto junto con la comunidad y nuestros adoptantes para hacerlo bien.

Esto no significa que el soporte móvil esté roto o no sea compatible. Tenemos plugins móviles en nuestro repositorio oficial de plugins y hemos visto desarrolladores que han construido aplicaciones geniales en Android e iOS con Tauri.

Nuestro socio CrabNebula también nos proporcionó comentarios sobre lo fácil (o complicada) que era la experiencia del desarrollador cuando construían o daban soporte a aplicaciones móviles para clientes. Incluso contribuyeron con múltiples plugins móviles (NFC, Escáner de código de barras, Biométrico, Hápticos, Geolocalización) como parte de su trabajo.

Vemos mejoras por hacer en la experiencia de desarrollo para móvil y reconocemos que no todas nuestras características y plugins de escritorio han sido portados o están disponibles en móvil todavía.

Esto nos lleva a decir que no queremos generar expectativas de que Tauri 2.0 será el lanzamiento de “móvil como ciudadano de primera clase”, pero queremos dejar claro que puedes desarrollar aplicaciones móviles listas para producción con Tauri AHORA.

Lo que puedes esperar de la versión estable después de esta candidata a lanzamiento es:

  • Documentación más clara y completa
  • Menos errores críticos que impidan el uso en producción

Planeamos lanzar la versión estable de la 2.0 a finales de agosto. Esto, al momento de escribir esto, permitirá un ciclo de candidata a lanzamiento de ~4 semanas.

Después del lanzamiento estable, nuestro enfoque se desplazará a proporcionar paridad de características donde sea posible y a mejorar el proceso de desarrollo para móvil. Esto sucederá en versiones menores de Tauri.

La paridad de características y el desarrollo de plugins estarán alineados con las versiones principales de Tauri, pero serán mayormente independientes de las características del núcleo de Tauri y ocurrirán en nuestro repositorio plugin-workspace.

La experiencia del desarrollador es un tema muy importante para nosotros. Si tienes sugerencias de mejora o quieres mejorar el estado actual por tu cuenta, no dudes en ponerte en contacto con PR, issues o conversaciones amigables en nuestro servidor de Discord.

Antes de entrar en la fase de expectativa de “no más cambios de ruptura”, discutimos y planificamos hace un tiempo algunos cambios de ruptura necesarios desde nuestra perspectiva.

Estos cambios afectan a muchos desarrolladores, por lo que quisimos agruparlos y hacer que actualizar desde la última beta a la candidata a lanzamiento o estable fuera lo más sencillo posible.

Para los desarrolladores de aplicaciones tenemos cambios de ruptura en cómo se hace referencia a los plugins del núcleo en los permisos.

Deberías poder migrar automáticamente desde la última beta hasta la candidata a lanzamiento (release candidate). Para que esto tenga éxito, debes asegurarte de estar en la última versión (RC, no beta) de la CLI de Tauri.

De lo contrario, lee la sección detallada a continuación que explica los cambios y cómo migrar manualmente.

Para los consumidores derivados de Tauri como biblioteca o desarrolladores de aplicaciones que trastean con los componentes internos de Tauri, tenemos una refactorización más grande que deberías revisar.

Con Tauri 2.0 migramos la mayor parte de la funcionalidad del núcleo de 1.x a plugins separados, lo que nos permite iterar en estos de forma independiente al núcleo de Tauri y reduce la barrera para los primeros colaboradores en funcionalidad.

Esta migración también incluyó mantener cierta funcionalidad dentro de Tauri como pseudo plugins. Los plugins completamente cualificados necesitan implementar el Plugin Trait y deben ser crates individuales siguiendo el esquema de nombres tauri-plugin-<nombre del plugin>. Para los plugins del núcleo, la segunda condición no era posible ya que tendríamos dependencias circulares en Tauri. Por lo tanto, creamos pseudo plugins, que siempre son inicializados por el propio Tauri y solo implementan el trait del plugin. Estos son, por ejemplo, window, path o webview. En este momento, estos se permiten en las capacidades de tu aplicación Tauri de la siguiente manera:

...
"permissions": [
"path:default",
"event:default",
"window:default",
"app:default",
"image:default",
"resources:default",
"menu:default",
"tray:default"
]
...

Esto presenta varios problemas:

  • Cualquier crate de plugin que tenga un nombre coincidente romperá nuestro proceso de compilación (por ejemplo, el crate tauri-plugin-window) y nuestra CLI para añadir plugins (por ejemplo, cargo tauri add window)
  • No podemos usar ningún nombre de pseudo plugin del núcleo que ya utilicen los plugins existentes (por ejemplo, si alguna vez quisiéramos crear tauri-plugin-mobile-core y ya estuviera en uso, nos encontraríamos con el primer problema)
  • No queda claro para los desarrolladores qué es un plugin del núcleo y qué es un plugin dedicado al examinar las capacidades

Nuestro enfoque es utilizar un espacio de nombres fijo para los plugins del núcleo, lo cual está documentado y hecho cumplir por el núcleo de Tauri. Todos los plugins que comienzan con core: o tienen el nombre de plugin core ahora se consideran pseudo plugins del núcleo y solo se inicializarán si están en el código base de Tauri.

Esto provocará un cambio de ruptura en todas las capacidades que habiliten características del núcleo de Tauri. El ejemplo anterior cambiará para verse así:

...
"permissions": [
"core:path:default",
"core:event:default",
"core:window:default",
"core:app:default",
"core:image:default",
"core:resources:default",
"core:menu:default",
"core:tray:default"
]
...

También añadimos un nuevo conjunto de permisos especial core:default que contendrá todos los permisos predeterminados de todos los plugins del núcleo, para que puedas simplificar la estructura básica de permisos en la configuración de tus capacidades.

...
"permissions": [
"core:default"
]
...

Consideramos que la exposición predeterminada del núcleo es razonablemente segura y conveniente de habilitar por defecto, con un impacto limitado en caso de un frontend comprometido.

Para migrar desde la última versión beta, debes anteponer a todos los identificadores de permisos del núcleo en tus capacidades core: o cambiar al permiso core:default y eliminar los antiguos identificadores de plugins del núcleo.

Introdujimos cambios en la exposición de red del servidor de desarrollo integrado en PR #10437 y PR #10456. Con los cambios incluidos en el lanzamiento 2.0.0-rc.0 de la CLI de Tauri, podemos conectarnos a tu servidor de desarrollo que se ejecuta en localhost cuando el objetivo es Android e iOS (anteriormente esto solo era posible al desarrollar una aplicación de escritorio).

Esto significa que ya no necesitas exponer tu servidor de desarrollo en la red pública.

Refactorización de la superficie de la API de Rust

Sección titulada “Refactorización de la superficie de la API de Rust”

Con un esfuerzo coordinado entre múltiples miembros del grupo de trabajo, cambiamos parcialmente la exposición de nuestra API de Rust. Esto solo afecta a los consumidores de nuestra API de Rust y no debería tener impacto de cambios de ruptura para los desarrolladores de aplicaciones Tauri.

Esto fue motivado por un aviso de seguridad reciente CVE-2024-35222, ya que la corrección tuvo que introducir campos adicionales a una estructura que estaba expuesta públicamente de forma directa y causó cambios de ruptura en algunos proyectos y usos internos.

Concluimos que esta sobreexposición nos dificultará las cosas en el futuro y provocará cambios de ruptura innecesarios, así que decidimos que pasar de beta a RC será la última oportunidad que tengamos para implementar esto antes de emprender el camino hacia Tauri 3.0.

Redujimos la cantidad de componentes expuestos públicamente que están destinados al uso interno. Además, hicimos que nuestras estructuras expuestas públicamente sean no exhaustivas o las transformamos para exponer patrones de constructor (builder patterns) o constructores. En algunos casos, añadimos un nuevo campo extend para permitir adiciones dinámicas en el futuro. Finalmente, nos aseguramos de documentar qué módulos de Tauri se consideran inestables.

Esto nos ayudará a proporcionar soluciones (de seguridad) o cambios sin romper interfaces que se consideran estables.

Echa un vistazo más de cerca a los cambios introducidos y discutidos en la solicitud de extracción #10158.

Hemos estado en silencio en este frente durante algún tiempo ya que hemos estado ocupados solucionando y discutiendo problemas descubiertos durante las versiones beta.

Nunca promocionamos las versiones beta de la versión 2 como listas para producción, pero sabíamos de algunas aplicaciones desplegadas en producción. Esto nos llevó a anunciar y distribuir un parche de seguridad para uno de los hallazgos (CVE-2024-35222) que también fue descubierto independientemente por un miembro de la comunidad de Tauri.

Todos los demás hallazgos se solucionaron en múltiples versiones beta, pero no creamos avisos para ellos. Concluimos que una advertencia completa podía esperar hasta la candidata a lanzamiento, ya que los hallazgos afectan principalmente a la fase de desarrollo o no tienen gravedad crítica.

Con la candidata a lanzamiento añadiremos el informe completo a nuestro repositorio. Tómate un tiempo para leer el informe y obtener más información sobre el increíble trabajo de @gronke y @pcwizz de RadicallyOpenSecurity.

Toda la auditoría fue financiada por la genial gente de NLNet y estamos súper agradecidos de estar en la posición privilegiada de recibir auditorías de seguridad externas totalmente financiadas.

Todos los temas anteriores comparten un tema común. Estos no habrían sido posibles sin el apoyo continuo de la comunidad, nuestro grupo de trabajo y otros movimientos que trabajan para mejorar el estado actual.

Antes de lanzar Tauri 2.0 queremos asegurarnos de que sus voces sean escuchadas, sus PR sean reconocidos y la documentación sea útil para TI, de modo que puedas construir la próxima generación de aplicaciones multiplataforma.

Actualmente tenemos más de 30 personas en nuestro grupo de trabajo en GitHub, pero aún más involucradas en nuestro Discord. Estas increíbles personas trabajan en Tauri principalmente en su tiempo libre, salvo muy pocas excepciones. Actualmente vemos que varios problemas, PR y discusiones permanecen sin resolver y abiertos por más tiempo del que nos gustaría.

Para mejorar esta situación te pedimos a TI que te involucres en el proyecto Tauri. Tenemos todo tipo de situaciones donde podemos aceptar incluso la contribución más pequeña.

Si estás familiarizado con Tauri y ya lo has usado durante tu recorrido, tómate un tiempo para revisar las discusiones de GitHub, los issues de GitHub y nuestro soporte en Discord. Quizás ya hayas resuelto los problemas que otros recién llegados a Tauri están experimentando en este momento.

Si piensas que algunos de estos problemas que has visto son genéricos y deberían estar documentados en alguna parte, probablemente tengamos el lugar perfecto para ello en nuestra documentación oficial.

Para contribuir con mejoras o adiciones, estamos abiertos a PRs en el repositorio tauri-docs. Sin embargo, asegúrate de haber leído las directrices para contribuir.

Si estás en posición de entender y traducir la documentación actual a tu idioma nativo, agradecemos las traducciones de contenido para nuestra documentación.

Si has seguido nuestro proyecto durante un tiempo pero nunca has hecho una contribución, nos encantaría entender qué te lo ha impedido y cómo podríamos mejorar esto. Por favor ponte en contacto con nosotros en nuestro Discord o en nuestras discusiones de GitHub.

  • ¡Candidata a lanzamiento de Tauri 2.0 ya disponible!
  • Se requiere cierta migración desde la beta. Revisa tauri migrate.
  • La auditoría de seguridad externa para 2.0 está disponible aquí
  • Todos los hallazgos han sido solucionados y se verificaron las correcciones
  • La documentación es nuestro enfoque hasta la versión estable
  • Tauri busca más colaboradores y participación de la comunidad

© 2026 Colaboradores de Tauri. CC-BY / MIT