Arquitectura y Modelo de Procesos

Por: Artiko
tauriarquitecturaipcwebviewprocesos

Arquitectura y Modelo de Procesos

Dos procesos

Tauri ejecuta dos procesos separados:

Proceso Core (Rust)

Proceso Webview

IPC: comunicacion entre procesos

El frontend y Rust se comunican via paso de mensajes asincrono. Es mas seguro que memoria compartida porque el receptor puede rechazar peticiones maliciosas.

Dos primitivas

Comandos — estilo request/response:

Frontend (invoke) → Core (procesa) → Frontend (respuesta)

Eventos — dispara y olvida:

Core (emit) → Frontend (escucha)
Frontend (emit) → Core (escucha)

Flujo tipico

┌──────────────┐         IPC          ┌──────────────┐
│   Frontend   │ ◄──── eventos ─────► │  Core (Rust) │
│  (Webview)   │ ───── invoke ──────► │              │
│              │ ◄──── response ────  │              │
└──────────────┘                      └──────────────┘

Limites de confianza

El codigo en el Webview no es confiable por defecto. Solo tiene acceso a recursos del sistema que el Core expone explicitamente. Esto es fundamental para la seguridad:

Webview nativo vs Chromium

AspectoWebview nativo (Tauri)Chromium (Electron)
WindowsWebView2 (Edge)Chromium empaquetado
macOSWebKit (Safari)Chromium empaquetado
LinuxWebKitGTKChromium empaquetado
Tamano0 bytes (ya esta en el SO)~150MB
ParchesLos aplica el SODebes actualizar tu app
ConsistenciaVaria entre SOsIdentico en todos

La ventaja de parches del SO: los mantenedores de paquetes del sistema parchean vulnerabilidades significativamente mas rapido que los desarrolladores de apps individuales.

La desventaja: el comportamiento del webview puede variar entre sistemas operativos. Prueba en todas las plataformas objetivo.

Resumen


← Crear tu Primer Proyecto | Indice | Siguiente: Llamar Rust desde el Frontend →