Retour aux comparaisons
UI multiplateforme

Perry vs Tauri

Tauri est un framework pour construire des applications desktop (et de plus en plus mobiles) multiplateformes avec un backend Rust et un frontend qui s'exécute dans la webview intégrée du système d'exploitation — WebView2 sur Windows, WKWebView sur macOS, WebKitGTK sur Linux. Les applications Tauri sont nettement plus petites qu'Electron parce que la webview de l'OS n'est pas embarquée. Perry emprunte une voie différente : aucune webview, aucun rendu HTML, juste du TypeScript compilé en code machine natif qui pilote de vrais widgets de plateforme.

Qu'est-ce que Tauri ?

Tauri est un framework open-source écrit en Rust qui vous permet de construire des applications multiplateformes avec un frontend web (n'importe quel framework — React, Vue, Svelte, etc.) et un backend Rust. Au lieu d'embarquer Chromium, Tauri utilise la webview intégrée du système, ce qui maintient les installeurs d'applications dans la plage des Mo à un chiffre sur Linux/Windows/macOS. Tauri 2 a ajouté le support du mobile (iOS et Android). Le frontend est rendu en HTML/CSS/JS par la webview système ; la communication avec le backend Rust passe par un pont IPC.

Qu'est-ce que Perry ?

Perry compile TypeScript directement en code machine natif via LLVM. La couche UI (perry/ui) est une API déclarative de style SwiftUI qui se mappe vers des widgets natifs de plateforme — pas du HTML rendu par une webview. Les applications écrites en Perry ne portent pas de moteur JavaScript, ne tournent pas dans WebKit/WebView2 et n'ont pas besoin d'un pont IPC entre l'UI et la logique. Perry cible 10 plateformes dont mobile, montre et TV.

Côte à côte

FonctionnalitéPerryTauri
Rendu UIWidgets natifs de plateforme (AppKit, UIKit, GTK4, Win32, JNI)Webview système (WKWebView, WebView2, WebKitGTK) — HTML/CSS/JS
Langage du frontendTypeScript (API de widgets déclarative)HTML/CSS/JS via n'importe quel framework web (React, Vue, etc.)
Langage du backendTypeScriptRust
IPC entre UI et logiqueAucun — processus unique, appels directsRequis (UI dans la webview, logique dans le processus Rust)
Installeur hello-world~330 Ko~3 à 10 Mo (la webview est fournie par l'OS)
Mobile (iOS, Android)Oui — UI nativeOui — basé sur webview (Tauri 2)
Montre / TVwatchOS, tvOS, Wear OSNon
Cible WebAssemblyOui (perry/ui via pont DOM)N/A (Tauri lui-même utilise nativement la webview)
MaturitéPré-1.0Stable (1.x / 2.x)

Là où Perry l'emporte

  • +UI véritablement native — Perry ne rend pas de HTML ; il pilote de vrais widgets de plateforme, donc les applications héritent gratuitement de la physique de défilement native, du focus, de l'accessibilité, de l'IME et du thème de l'OS.
  • +Hello-world plus petit (~330 Ko vs Mo à un chiffre pour Tauri), et aucune dépendance à la webview système à l'exécution.
  • +Langage unique, processus unique. Toute l'application — UI et logique — est en TypeScript, sans pont IPC à concevoir ou déboguer.
  • +watchOS, tvOS, Wear OS et une cible Web/JS complète avec de vrais pipelines de compilation native, pas des webviews embarquées.
  • +Aucune différence de comportement de webview entre plateformes. Tauri hérite des particularités de WKWebView vs WebView2 vs WebKitGTK ; Perry choisit la voie du widget natif sur chaque OS.
  • +Les performances de calcul sont AOT-natives, pas JIT-webview. Perry domine les microbenchmarks de calcul à conditions équivalentes sur M1 Max (perry/benchmarks).

Là où Tauri l'emporte

  • +Framework mature et stable avec une ligne 2.x active et une grande communauté.
  • +Flexibilité du frontend — utilisez n'importe quel framework web (React, Vue, Svelte, Solid, etc.) que vous connaissez déjà.
  • +Installeurs plus petits qu'Electron parce que Tauri s'appuie sur la webview fournie par l'OS plutôt que d'embarquer Chromium.
  • +Le backend Rust est idéal si vous avez du travail de niveau système à faire (système de fichiers, API natives) et voulez des garanties à la compilation à cet endroit.
  • +Le rendu webview signifie que la rapidité d'itération CSS/HTML et les devtools fonctionnent comme on s'y attend en développement web.
  • +Pipeline de packaging, de signature de code et de mise à jour établi.

Quand choisir Perry

Choisissez Perry si vous voulez une UI véritablement native (pas du HTML rendu dans une webview), de petits binaires natifs sans dépendance à une webview, un seul codebase TypeScript pour desktop + mobile + montre + TV, ou du code de widgets multiplateforme validé à la compilation.

Quand choisir Tauri

Choisissez Tauri si vous avez un frontend web existant ou prévu, voulez une application desktop à backend Rust avec un installeur petit, êtes à l'aise avec HTML/CSS pour l'UI, ou voulez le large écosystème de frameworks et d'outils web.

Verdict

Tauri est un bien meilleur Electron — même approche tech-web, installeur nettement plus petit parce que la webview de l'OS n'est pas embarquée. Mais il s'agit toujours d'une architecture basée sur une webview, ce qui implique du rendu HTML/CSS/JS et un pont IPC. Perry adopte une position différente : aucune webview, widgets natifs de plateforme, processus unique. Si vous voulez conserver la stack web avec des binaires plus petits qu'Electron, Tauri est la bonne réponse. Si vous voulez quitter la stack web pour des widgets natifs en TypeScript, Perry l'est.

Essayer Perry

Compilez votre TypeScript en natif dès aujourd'hui.

Commencer