Saltar al contenido

Arquitectura de Tauri

Tauri es un conjunto de herramientas políglota y genérico que es muy composable y permite a los ingenieros crear una amplia variedad de aplicaciones. Se utiliza para construir aplicaciones para computadoras de escritorio usando una combinación de herramientas de Rust y HTML renderizado en un Webview. Las aplicaciones construidas con Tauri se pueden distribuir con cualquier cantidad de partes de una API opcional de JS y API de Rust para que los webviews puedan controlar el sistema a través del paso de mensajes. Los desarrolladores pueden extender la API por defecto con su propia funcionalidad y conectar fácilmente el Webview y el backend basado en Rust.

Las aplicaciones de Tauri pueden tener interfaces de tipo bandeja (tray). Pueden ser actualizadas y son gestionadas por el sistema operativo del usuario como se espera. Son muy pequeñas porque utilizan el webview del sistema operativo. No incluyen un runtime ya que el binario final se compila desde Rust. Esto hace que la ingeniería inversa de las aplicaciones de Tauri no sea una tarea trivial.

Tauri no es un wrapper ligero del kernel. En su lugar, utiliza directamente WRY y TAO para hacer el trabajo pesado en las llamadas al sistema del SO.

Tauri no es una máquina virtual ni un entorno virtualizado. En cambio, es un conjunto de herramientas de aplicación que permite crear aplicaciones para SO basadas en Webview.

Diagrama
Representación simplificada de la arquitectura de Tauri.

Ver en GitHub

Esta es la crate principal que mantiene todo unido. Reúne los runtimes, macros, utilidades y la API en un producto final. Lee el archivo tauri.conf.json en tiempo de compilación para incorporar características y llevar a cabo la configuración real de la aplicación (e incluso el archivo Cargo.toml en la carpeta del proyecto). Maneja la inyección de scripts (para polyfills / revisión de prototipos) en tiempo de ejecución, hospeda la API para la interacción con el sistema e incluso gestiona el proceso de actualización.

Ver en GitHub

La capa de conexión entre el propio Tauri y las librerías webview de más bajo nivel.

Ver en GitHub

Crea macros para el contexto, manejador y comandos aprovechando la crate tauri-codegen.

Ver en GitHub

Código común que se reutiliza en muchos lugares y ofrece utilidades útiles como la lectura de archivos de configuración, detección de triples de plataforma, inyección de la CSP y gestión de assets.

Ver en GitHub

Aplica las macros en tiempo de construcción para preparar algunas características especiales que necesita Cargo.

Ver en GitHub

Incrusta, calcula hashes y comprime assets, incluyendo iconos para la aplicación así como para la bandeja del sistema. Analiza tauri.conf.json en tiempo de compilación y genera la estructura Config.

Ver en GitHub

Esta crate abre interacciones directas a nivel de sistema específicamente para WRY, como impresión, detección de monitores y otras tareas relacionadas con ventanas.

Ver en GitHub

Una librería TypeScript que crea puntos de enlace de JavaScript en cjs y esm para que los importes en tu framework frontend, de modo que el Webview pueda llamar y escuchar la actividad del backend. También se distribuye en TypeScript puro, porque para algunos frameworks esto es más óptimo. Utiliza el paso de mensajes de los webviews a sus hosts.

Ver en GitHub

Una librería que construye una aplicación Tauri para la plataforma que detecta o se le indica. Actualmente es compatible con macOS, Windows y Linux, pero en un futuro cercano también admitirá plataformas móviles. Se puede utilizar fuera de los proyectos de Tauri.

Ver en GitHub

Este ejecutable de Rust proporciona la interfaz completa para todas las actividades requeridas para las cuales se necesita la CLI. Funciona en macOS, Windows y Linux.

Ver en GitHub

Wrapper alrededor de cli.rs usando napi-rs para producir paquetes npm para cada plataforma.

Ver en GitHub

Un conjunto de herramientas que permitirá a los equipos de ingeniería crear rápidamente la estructura base de un nuevo proyecto tauri-apps utilizando el framework frontend de su elección (siempre que haya sido configurado).

La organización Tauri-Apps mantiene dos crates “upstream” de Tauri, a saber: TAO para crear y gestionar ventanas de aplicaciones, y WRY para la interfaz con el Webview que vive dentro de la ventana.

Ver en GitHub

Librería multiplataforma para la creación de ventanas de aplicaciones en Rust compatible con todas las plataformas principales como Windows, macOS, Linux, iOS y Android. Escrita en Rust, es un fork de winit que hemos extendido para nuestras propias necesidades, como la barra de menú y la bandeja del sistema.

Ver en GitHub

WRY es una librería multiplataforma para el renderizado de WebView en Rust que es compatible con todas las plataformas de escritorio principales como Windows, macOS y Linux. Tauri utiliza WRY como la capa abstracta responsable de determinar qué webview se utiliza (y cómo se realizan las interacciones).

Ver en GitHub

Workflow de GitHub que construye binarios de Tauri para todas las plataformas. Incluso permite crear una aplicación Tauri (muy básica) aunque Tauri no esté configurado.

Ver en GitHub

Este proyecto mejora la interfaz de Visual Studio Code con varias características muy útiles.

Guía de Plugins de Tauri

En términos generales, los plugins son creados por terceros (aunque puede haber plugins oficiales y compatibles). Un plugin generalmente hace 3 cosas:

  1. Permite que el código de Rust haga “algo”.
  2. Proporciona código de conexión a la interfaz para facilitar su integración en una aplicación.
  3. Proporciona una API de JavaScript para interactuar con el código de Rust.

Aquí hay algunos ejemplos de Plugins de Tauri:

Tauri en sí está licenciado bajo MIT o Apache-2.0. Si lo empaquetas de nuevo y modificas cualquier código fuente, es tu responsabilidad verificar que estés cumpliendo con todas las licencias upstream. Tauri se proporciona "TAL CUAL", sin ninguna afirmación explícita sobre su idoneidad para cualquier propósito.

Aquí puedes consultar nuestra Lista de Materiales de Software (SBOM).


© 2026 Colaboradores de Tauri. CC-BY / MIT