Volver a las comparativas
UI multiplataforma

Perry frente a Tauri

Tauri es un framework para construir apps multiplataforma de escritorio (y cada vez más móviles) con un backend en Rust y un frontend que corre dentro del webview integrado del sistema operativo — WebView2 en Windows, WKWebView en macOS, WebKitGTK en Linux. Las apps Tauri son drásticamente más pequeñas que las de Electron porque el webview del SO no se empaqueta. Perry toma otro camino: nada de webview, nada de renderizado HTML, solo TypeScript compilado a código máquina nativo que controla widgets reales de cada plataforma.

¿Qué es Tauri?

Tauri es un framework de código abierto escrito en Rust que te permite construir aplicaciones multiplataforma con un frontend web (cualquier framework — React, Vue, Svelte, etc.) y un backend en Rust. En lugar de empaquetar Chromium, Tauri usa el webview integrado del sistema, lo que mantiene los instaladores de apps en el rango de un dígito de MB en Linux/Windows/macOS. Tauri 2 añadió soporte móvil (iOS y Android). El frontend se renderiza como HTML/CSS/JS por el webview del sistema; la comunicación con el backend Rust va por un puente IPC.

¿Qué es Perry?

Perry compila TypeScript directamente a código máquina nativo a través de LLVM. La capa de UI (perry/ui) es una API declarativa al estilo SwiftUI que mapea a widgets nativos de cada plataforma — no a HTML renderizado por un webview. Las apps escritas en Perry no llevan motor JavaScript, no corren dentro de WebKit/WebView2 y no necesitan un puente IPC entre UI y lógica. Perry apunta a 10 plataformas, incluyendo móvil, watch y TV.

Lado a lado

CaracterísticaPerryTauri
Renderizado de UIWidgets nativos de la plataforma (AppKit, UIKit, GTK4, Win32, JNI)Webview del sistema (WKWebView, WebView2, WebKitGTK) — HTML/CSS/JS
Lenguaje de frontendTypeScript (API declarativa de widgets)HTML/CSS/JS vía cualquier framework web (React, Vue, etc.)
Lenguaje de backendTypeScriptRust
IPC entre UI y lógicaNinguno — un solo proceso, llamadas directasRequerido (UI en webview, lógica en proceso Rust)
Instalador hello world~330 KB~3–10 MB (el webview lo provee el SO)
Móvil (iOS, Android)Sí — UI nativaSí — basado en webview (Tauri 2)
Watch / TVwatchOS, tvOS, Wear OSNo
Plataforma WebAssemblySí (perry/ui vía puente DOM)N/A (Tauri en sí usa webview de forma nativa)
MadurezPre-1.0Estable (1.x / 2.x)

Dónde gana Perry

  • +UI verdaderamente nativa — Perry no renderiza HTML; controla widgets reales de cada plataforma, así que las apps heredan gratis la física de scroll nativa, el foco, la accesibilidad, el IME y el theming del SO.
  • +Hello world más pequeño (~330 KB frente al rango de un dígito de MB de Tauri), y sin dependencia de un webview del sistema en runtime.
  • +Un solo lenguaje, un solo proceso. La app entera — UI y lógica — es TypeScript, sin un puente IPC que diseñar o depurar.
  • +watchOS, tvOS, Wear OS y una plataforma Web/JS completa con pipelines reales de compilación nativa, no webviews empaquetados.
  • +Sin diferencias de comportamiento de webview entre plataformas. Tauri hereda las peculiaridades de WKWebView vs WebView2 vs WebKitGTK; Perry elige la ruta del widget nativo en cada SO.
  • +El rendimiento de cómputo es nativo AOT, no de JIT en webview. Perry lidera microbenchmarks de cómputo en condiciones equivalentes en M1 Max (perry/benchmarks).

Dónde gana Tauri

  • +Framework maduro y estable con una línea 2.x activa y una gran comunidad.
  • +Flexibilidad de frontend — usa cualquier framework web (React, Vue, Svelte, Solid, etc.) que ya conozcas.
  • +Instaladores más pequeños que Electron porque Tauri se apoya en el webview que provee el SO en lugar de empaquetar Chromium.
  • +Un backend Rust es ideal si tienes trabajo a nivel de sistema (sistema de archivos, APIs nativas) y quieres garantías en tiempo de compilación allí.
  • +El renderizado en webview implica que la velocidad de iteración en CSS/HTML y los devtools funcionan como esperarías del desarrollo web.
  • +Pipeline establecido de empaquetado, firma de código y actualizador.

Cuándo elegir Perry

Elige Perry si quieres UI verdaderamente nativa (no HTML renderizado en un webview), binarios nativos pequeños sin dependencia de webview, un único código TypeScript a través de escritorio + móvil + watch + TV, o código de widgets multiplataforma validado en tiempo de compilación.

Cuándo elegir Tauri

Elige Tauri si tienes o planeas un frontend web, quieres una app de escritorio con instalador pequeño respaldada por Rust, te conformas con HTML/CSS para la UI, o quieres el amplio ecosistema de frameworks y herramientas web.

Veredicto

Tauri es un Electron mucho mejor — el mismo enfoque de tecnologías web, instalador drásticamente más pequeño porque el webview del SO no se empaqueta. Pero sigue siendo una arquitectura basada en webview, lo que implica renderizado HTML/CSS/JS y un puente IPC. Perry toma una posición distinta: nada de webview, widgets nativos de la plataforma, un solo proceso. Si quieres mantener el stack web con binarios más pequeños que Electron, Tauri es la respuesta correcta. Si quieres dejar atrás el stack web por widgets nativos en TypeScript, Perry lo es.

Prueba Perry

Compila tu TypeScript a nativo hoy mismo.

Comenzar