Saltar al contenido

Modelo de procesos

Tauri emplea una arquitectura de múltiples procesos similar a Electron o a muchos navegadores web modernos. Esta guía explora las razones detrás de la elección de diseño y por qué es clave para escribir aplicaciones seguras.

En los primeros días de las aplicaciones GUI, era común usar un solo proceso para realizar cálculos, dibujar la interfaz y reaccionar a la entrada del usuario. Como probablemente puedas adivinar, esto significaba que un cálculo costoso y de larga ejecución dejaría la interfaz de usuario sin respuesta, o peor aún, que un fallo en un componente de la app provocaría la caída de toda la aplicación.

Quedó claro que se necesitaba una arquitectura más resistente, y las aplicaciones comenzaron a ejecutar diferentes componentes en procesos distintos. Esto aprovecha mucho mejor las CPU multinúcleo modernas y crea aplicaciones mucho más seguras. Un bloqueo en un componente ya no afecta a todo el sistema, ya que los componentes están aislados en procesos diferentes. Si un proceso entra en un estado no válido, podemos reiniciarlo fácilmente.

También podemos limitar el radio de alcance de posibles exploits otorgando solo la cantidad mínima de permisos a cada proceso, lo suficiente para que puedan hacer su trabajo. Este patrón se conoce como el Principle of Least Privilege (Principio de menor privilegio), y lo ves en el mundo real todo el tiempo. Si viene un jardinero a recortar tu seto, le das la llave de tu jardín. No le darías las llaves de tu casa; ¿para qué necesitaría acceso a eso? El mismo concepto se aplica a los programas de computadora. Cuanto menos acceso les demos, menos daño pueden causar si se ven comprometidos.

Cada aplicación Tauri tiene un proceso core (principal), que actúa como punto de entrada de la aplicación y es el único componente con acceso completo al sistema operativo.

La responsabilidad principal del Core es usar ese acceso para crear y orquestar las ventanas de la aplicación, los menús del tray del sistema o las notificaciones. Tauri implementa las abstracciones multiplataforma necesarias para hacer esto sencillo. También enruta toda la Inter-Process Communication a través del proceso Core, lo que te permite interceptar, filtrar y manipular mensajes IPC en un lugar centralizado.

El proceso Core también debería ser responsable de gestionar el estado global, como la configuración o las conexiones a bases de datos. Esto te permite sincronizar fácilmente el estado entre ventanas y proteger tus datos confidenciales de negocio de miradas indiscretas en el Frontend.

Elegimos Rust para implementar Tauri debido a que su concepto de Ownership garantiza la seguridad de memoria mientras conserva un excelente rendimiento.

Diagrama
Representación simplificada del modelo de procesos de Tauri. Un solo proceso Core gestiona uno o más procesos WebView.

El proceso Core no renderiza la interfaz de usuario (UI) real por sí mismo; inicia procesos WebView que aprovechan las bibliotecas WebView proporcionadas por el sistema operativo. Un WebView es un entorno similar a un navegador que ejecuta tu HTML, CSS y JavaScript.

Esto significa que la mayoría de tus técnicas y herramientas utilizadas en el desarrollo web tradicional se pueden utilizar para crear aplicaciones Tauri. Por ejemplo, muchos ejemplos de Tauri están escritos utilizando el framework frontend Svelte y el empaquetador Vite.

Las buenas prácticas de seguridad también se aplican aquí; por ejemplo, siempre debes sanitizar la entrada del usuario, nunca manejar secretos en el Frontend e idealmente delegar tanta lógica de negocio como sea posible al proceso Core para mantener pequeña tu superficie de ataque.

A diferencia de otras soluciones similares, las bibliotecas WebView no están incluidas en tu ejecutable final, sino que se vinculan dinámicamente en tiempo de ejecución1. Esto hace que tu aplicación sea significativamente más pequeña, pero también significa que debes tener en cuenta las diferencias entre plataformas, al igual que en el desarrollo web tradicional.

  1. Actualmente, Tauri utiliza Microsoft Edge WebView2 en Windows, WKWebView en macOS y webkitgtk en Linux.


© 2026 Colaboradores de Tauri. CC-BY / MIT