Voltar às comparações
UI multiplataforma

Perry vs Tauri

Tauri é um framework para construir aplicações desktop (e cada vez mais mobile) multiplataforma com um backend em Rust e um frontend que roda dentro do webview integrado do sistema operacional — WebView2 no Windows, WKWebView no macOS, WebKitGTK no Linux. Aplicações Tauri são drasticamente menores que Electron porque o webview do SO não é empacotado. Perry segue um caminho diferente: sem webview algum, sem renderização HTML, apenas TypeScript compilado para código de máquina nativo que dirige widgets reais da plataforma.

O que é Tauri?

Tauri é um framework de código aberto escrito em Rust que permite construir aplicações multiplataforma com um frontend web (qualquer framework — React, Vue, Svelte etc.) e um backend em Rust. Em vez de empacotar o Chromium, o Tauri usa o webview integrado do sistema, o que mantém os instaladores na faixa de poucos MB em Linux/Windows/macOS. O Tauri 2 adicionou suporte mobile (iOS e Android). O frontend é renderizado como HTML/CSS/JS pelo webview do sistema; a comunicação com o backend Rust acontece por uma ponte IPC.

O que é Perry?

Perry compila TypeScript diretamente para código de máquina nativo via LLVM. A camada de UI (perry/ui) é uma API declarativa estilo SwiftUI que mapeia para widgets nativos da plataforma — não HTML renderizado por um webview. Aplicações escritas em Perry não carregam um motor JavaScript, não rodam dentro de WebKit/WebView2 e não precisam de uma ponte IPC entre UI e lógica. Perry tem como alvo 10 plataformas, incluindo mobile, relógio e TV.

Lado a lado

FuncionalidadePerryTauri
Renderização de UIWidgets nativos da plataforma (AppKit, UIKit, GTK4, Win32, JNI)Webview do sistema (WKWebView, WebView2, WebKitGTK) — HTML/CSS/JS
Linguagem do frontendTypeScript (API declarativa de widgets)HTML/CSS/JS via qualquer framework web (React, Vue etc.)
Linguagem do backendTypeScriptRust
IPC entre UI e lógicaNenhum — processo único, chamadas diretasNecessário (UI no webview, lógica no processo Rust)
Instalador hello-world~330 KB~3–10 MB (webview é fornecido pelo SO)
Mobile (iOS, Android)Sim — UI nativaSim — baseado em webview (Tauri 2)
Relógio / TVwatchOS, tvOS, Wear OSNão
Alvo WebAssemblySim (perry/ui via bridge para o DOM)N/A (o próprio Tauri usa webview nativamente)
MaturidadePré-1.0Estável (1.x / 2.x)

Onde o Perry ganha

  • +UI verdadeiramente nativa — Perry não renderiza HTML; ele dirige widgets reais da plataforma, então as aplicações herdam física de scroll nativa, foco, acessibilidade, IME e temas do SO de graça.
  • +Hello-world menor (~330 KB vs poucos MB do Tauri) e sem dependência de webview do sistema em runtime.
  • +Linguagem única, processo único. Toda a aplicação — UI e lógica — é TypeScript, sem ponte IPC para projetar ou depurar.
  • +watchOS, tvOS, Wear OS e um alvo Web/JS completo com pipelines de compilação real e nativa, não webviews empacotados.
  • +Sem diferenças de comportamento de webview entre plataformas. Tauri herda as peculiaridades de WKWebView vs WebView2 vs WebKitGTK; Perry escolhe o caminho do widget nativo em cada SO.
  • +Desempenho de computação é AOT-nativo, não JIT em webview. Perry lidera microbenchmarks de computação sob condições equivalentes em M1 Max (perry/benchmarks).

Onde o Tauri ganha

  • +Framework maduro e estável com linha 2.x ativa e uma grande comunidade.
  • +Flexibilidade de frontend — use qualquer framework web (React, Vue, Svelte, Solid etc.) que você já conhece.
  • +Instaladores menores que Electron porque o Tauri se apoia no webview fornecido pelo SO em vez de empacotar o Chromium.
  • +Backend Rust é ideal se você tem trabalho em nível de sistema (sistema de arquivos, APIs nativas) e quer garantias em tempo de compilação ali.
  • +A renderização por webview significa que velocidade de iteração em CSS/HTML e devtools funcionam como você espera no desenvolvimento web.
  • +Pipeline estabelecido de empacotamento, assinatura de código e atualizador.

Quando escolher Perry

Escolha o Perry se você quer UI verdadeiramente nativa (não HTML renderizado em um webview), binários nativos pequenos sem dependência de webview, um único código TypeScript em desktop + mobile + relógio + TV, ou código de widgets multiplataforma validado em tempo de compilação.

Quando escolher Tauri

Escolha o Tauri se você tem um frontend web existente ou planejado, quer uma aplicação desktop com instalador pequeno e backend Rust, está feliz com HTML/CSS para UI, ou quer o amplo ecossistema de frameworks e ferramentas web.

Veredito

Tauri é um Electron muito melhor — mesma abordagem de tecnologias web, com instalador drasticamente menor porque o webview do SO não é empacotado. Mas ainda é uma arquitetura baseada em webview, o que significa renderização HTML/CSS/JS e uma ponte IPC. Perry assume uma posição diferente: sem webview algum, widgets nativos da plataforma, processo único. Se você quer manter a stack web com binários menores que Electron, Tauri é a resposta certa. Se você quer deixar a stack web para trás em troca de widgets nativos em TypeScript, Perry é.

Experimente o Perry

Compile seu TypeScript para nativo hoje.

Começar