Lanzamiento oficial de Tauri 2.0
(v2.tauri.app)- Tauri es un framework para construir binarios pequeños y rápidos para todas las principales plataformas de escritorio (macOS, Linux, Windows) y móviles (iOS, Android)
- Puede integrar cualquier framework de frontend que compile a HTML, JavaScript y CSS, y cuando sea necesario puede aprovechar lenguajes como Rust, Swift y Kotlin para la lógica de backend
- Ofrece una amplia API de JavaScript, por lo que en la mayoría de los casos no es necesario escribir código en Rust, Swift o Kotlin
¿Cuándo usar Tauri?
- Si quieres una sola base de código de UI para todas las plataformas
- Si quieres llegar a la mayor cantidad posible de usuarios en su propia plataforma (por ejemplo: Windows, macOS, Linux, Android, iOS)
- Si eres desarrollador frontend y quieres escribir aplicaciones nativas
- Si eres desarrollador Rust y quieres escribir aplicaciones con una gran UI teniendo también la opción de escribir en Rust
- Si tienes un equipo de desarrolladores web y quieres expandirte al mercado de aplicaciones nativas con una inversión inicial baja
- Si tienes un equipo de desarrolladores Rust y quieres escribir todo en Rust
Ventajas y mejoras de 2.0
Mejor experiencia de inicio
- Da prioridad a la experiencia del desarrollador (DX) y busca hacer que este proceso inicial sea tan fluido como construir y desplegar la aplicación final
- Creó un proyecto llamado create-tauri-app (CTA) para que los desarrolladores puedan empezar desde cero y tener una app de Tauri funcionando en minutos, no en horas
Hot-Module Replacement
- Extendió el hot module replacement (HMR), que ya se había considerado en la serie 1.x para mejorar el proceso de desarrollo, a dispositivos móviles y emuladores
- Cualquier cambio en el frontend de la aplicación ya no requiere reconstruir toda la aplicación, y se puede previsualizar en tiempo real cómo se verá en el dispositivo u sistema operativo en desarrollo
Plugins
- En Tauri 2.0 se construyó un sistema de plugins más avanzado. Gran parte de la funcionalidad anterior se trasladó a plugins oficiales para que la comunidad pueda contribuir más fácilmente a Tauri
- El sistema de plugins también admite plugins móviles. En iOS puedes escribir o reutilizar código nativo en Swift, y en Android en Kotlin, usar anotaciones (
@Commanden Android), implementar subclases (YourPluginClass: Pluginen iOS), o llamar código Swift o Kotlin desde comandos de Tauri basados en Rust para exponer funciones directamente al frontend de Tauri - Los plugins oficiales disponibles siguen la versión principal de Tauri
- Autostart: ejecutar automáticamente la app al iniciar el sistema
- Barcode Scanner: escaneo de códigos de barras como QR y EAN-13 en apps móviles
- Biometric: prompt de autenticación biométrica en Android e iOS
- Clipboard: leer y escribir en el portapapeles del sistema
- Command Line Interface (CLI): análisis de argumentos en la interfaz de línea de comandos
- Deep Linking: establecer una aplicación Tauri como manejador predeterminado de URLs
- Dialog: diálogos nativos del sistema para abrir y guardar archivos, y cuadros de mensaje
- File System: acceso al sistema de archivos
- Global Shortcut: registrar atajos globales
- HTTP Client: acceso a un cliente HTTP escrito en Rust
- Localhost: usar un servidor localhost en apps de producción
- Logging: logging configurable
- NFC: leer y escribir etiquetas NFC en Android e iOS
- Notifications: enviar notificaciones nativas al usuario
- OS Information: leer información sobre el sistema operativo
- Persisted Scope: conservar en el sistema de archivos los cambios de alcance en tiempo de ejecución
- Positioner: mover ventanas a posiciones comunes
- Process: acceso al proceso actual
- Shell: acceso al shell del sistema para manejar archivos y URLs con aplicaciones predeterminadas, y crear procesos hijo
- Single Instance: garantizar que solo se ejecute una instancia de la app Tauri a la vez
- SQL: plugin de Tauri que proporciona una interfaz para que el frontend se comunique con bases de datos SQL mediante sqlx
- Store: almacenamiento persistente de clave-valor
- Stronghold: base de datos segura y cifrada
- System Tray
- Updater: actualizaciones dentro de la app para aplicaciones Tauri
- Upload: carga de archivos por HTTP
- Websocket: abrir conexiones WebSocket desde JavaScript usando un cliente Rust
- Window Customization
- Window State: conservar el tamaño y la posición de la ventana
La muerte de Allowlist, larga vida a Allowlist
allowlistya no existe. Esto se debe a que sus limitaciones se alcanzaron muy rápido- Se creó de forma exclusiva solo para la funcionalidad central de Tauri, pero no cubría toda la API de Tauri
- El nuevo sistema no solo cubre toda la superficie de la API central de Tauri, sino que también permite que desarrolladores de apps y plugins implementen su propio control de acceso y definición de alcances con un enfoque unificado
- Se creó un sistema de control de acceso flexible pero fácil de usar mediante
permissions- "interruptores on-off para comandos de Tauri",scopes- "validación de parámetros para comandos de Tauri" ycapabilities- "vincular permisos y alcances a Windows y WebView" - Se pueden crear archivos de permisos o alcances con nombre, y reutilizarlos y combinarlos con otros permisos o alcances con nombre
- Esto permite construir conjuntos más granulares y descriptivos que incluyan varios permisos y alcances, simples o complejos
- Gracias a esta funcionalidad adicional, el núcleo de Tauri ahora puede entender si se permite que un mensaje de invocación de comandos desde el WebView del frontend llegue a la función del comando
Reescritura de la comunicación entre procesos (IPC)
- Se reescribió la capa IPC para admitir ahora una funcionalidad muy esperada llamada Raw Payload y cambiar internamente la forma en que funciona
- Antes, todas las cargas útiles de IPC se serializaban y deserializaban como JSON, lo que generaba sobrecarga. Esto se hacía notable cuando se transferían más de unos pocos kilobytes entre frontend y backend
- El nuevo sistema admite Raw Request. Esto acelera la transferencia de grandes volúmenes de datos del backend al frontend, o viceversa, usando bytes sin procesar directamente o usando su propio proceso de (des)serialización (por ejemplo: bson, protobuf, avro, etc.)
Guía de despliegue
- En Tauri 2.0, la diversidad de despliegue aumentó considerablemente gracias al ecosistema móvil y a las contribuciones de la comunidad
- La documentación de despliegue incluye guías oficiales sobre cómo publicar en Apple Appstore, Google Play, Microsoft Store, CrabNebula Cloud, Flathub, Snapcraft, AUR y otros formatos de distribución
4 comentarios
https://github.com/DioxusLabs/dioxus
Si vas a desarrollar solo con Rust, esto se ve mejor. Recién me entero. Pensaba enfocarme en Tauri, pero dicen que puedes desarrollar todo usando solo el lenguaje Rust, así que me voy por este~* También dicen que se puede acceder directamente de forma nativa, más rápido que con IPC.
Dioxus - una biblioteca de UI para Rust inspirada en React
Cuando la publiqué una vez hace tiempo, como era la versión 0.3, hubo comentarios de que tenía algunas dificultades.
Dioxus 0.5: apps web, de escritorio y móviles desarrolladas con Rust
Ahora que va por la 0.5, quizá las cosas hayan cambiado.
Es una noticia realmente sorprendente. Parece que también será útil para desarrollar aplicaciones nativas para Windows, y da la impresión de que también se podrá aprovechar muy bien en dispositivos móviles.
Que reescriban el IPC... parece que va a estar bueno para enviar datos grandes, como video.