Perry vs Tauri
Tauri adalah framework untuk membangun aplikasi desktop (dan semakin mobile) lintas platform dengan backend Rust dan frontend yang berjalan di dalam webview bawaan sistem operasi — WebView2 di Windows, WKWebView di macOS, WebKitGTK di Linux. Aplikasi Tauri jauh lebih kecil daripada Electron karena webview OS tidak dibundel. Perry mengambil jalur berbeda: tanpa webview sama sekali, tanpa rendering HTML, hanya TypeScript yang dikompilasi ke kode mesin native yang menggerakkan widget platform asli.
Apa itu Tauri?
Tauri adalah framework open source yang ditulis dalam Rust yang memungkinkan Anda membangun aplikasi lintas platform dengan frontend web (framework apa saja — React, Vue, Svelte, dll.) dan backend Rust. Alih-alih membundel Chromium, Tauri menggunakan webview bawaan sistem, yang menjaga installer aplikasi dalam kisaran MB satu digit di Linux/Windows/macOS. Tauri 2 menambahkan dukungan mobile (iOS dan Android). Frontend dirender sebagai HTML/CSS/JS oleh webview sistem; komunikasi dengan backend Rust melalui bridge IPC.
Apa itu Perry?
Perry mengompilasi TypeScript langsung ke kode mesin native melalui LLVM. Lapisan UI (perry/ui) adalah API deklaratif gaya SwiftUI yang dipetakan ke widget platform native — bukan HTML yang dirender oleh webview. Aplikasi yang ditulis dalam Perry tidak membawa engine JavaScript, tidak berjalan di dalam WebKit/WebView2, dan tidak butuh bridge IPC antara UI dan logika. Perry menargetkan 10 platform termasuk mobile, watch, dan TV.
Berdampingan
| Fitur | Perry | Tauri |
|---|---|---|
| Rendering UI | Widget platform native (AppKit, UIKit, GTK4, Win32, JNI) | Webview sistem (WKWebView, WebView2, WebKitGTK) — HTML/CSS/JS |
| Bahasa frontend | TypeScript (API widget deklaratif) | HTML/CSS/JS via framework web apa saja (React, Vue, dll.) |
| Bahasa backend | TypeScript | Rust |
| IPC antara UI dan logika | Tidak ada — proses tunggal, panggilan langsung | Diperlukan (UI di webview, logika di proses Rust) |
| Installer hello-world | ~330 KB | ~3–10 MB (webview disediakan OS) |
| Mobile (iOS, Android) | Ya — UI native | Ya — berbasis webview (Tauri 2) |
| Watch / TV | watchOS, tvOS, Wear OS | Tidak |
| Target WebAssembly | Ya (perry/ui via DOM bridge) | T/A (Tauri sendiri menggunakan webview secara native) |
| Kematangan | Pra-1.0 | Stabil (1.x / 2.x) |
Di mana Perry unggul
- +UI yang benar-benar native — Perry tidak merender HTML; ia menggerakkan widget platform asli, jadi aplikasi mewarisi fisika scroll native, fokus, aksesibilitas, IME, dan tema OS secara gratis.
- +Hello-world lebih kecil (~330 KB vs MB satu digit Tauri), dan tanpa dependensi webview sistem saat runtime.
- +Satu bahasa, satu proses. Seluruh aplikasi — UI dan logika — adalah TypeScript, tanpa bridge IPC untuk dirancang atau di-debug.
- +watchOS, tvOS, Wear OS, dan target Web/JS lengkap dengan pipeline kompilasi native yang nyata, bukan webview yang dibundel.
- +Tanpa perbedaan perilaku webview antar platform. Tauri mewarisi keanehan WKWebView vs WebView2 vs WebKitGTK; Perry memilih jalur widget native di setiap OS.
- +Performa komputasi adalah AOT-native, bukan webview-JIT. Perry memimpin microbench komputasi dalam kondisi setara di M1 Max (perry/benchmarks).
Di mana Tauri unggul
- +Framework yang matang dan stabil dengan jalur 2.x aktif dan komunitas besar.
- +Fleksibilitas frontend — gunakan framework web apa pun (React, Vue, Svelte, Solid, dll.) yang sudah Anda kenal.
- +Installer lebih kecil dari Electron karena Tauri bersandar pada webview yang disediakan OS daripada membundel Chromium.
- +Backend Rust ideal jika Anda memiliki pekerjaan tingkat sistem (filesystem, API native) dan menginginkan jaminan waktu kompilasi di sana.
- +Rendering webview berarti kecepatan iterasi CSS/HTML dan devtools bekerja seperti yang Anda harapkan dari pengembangan web.
- +Pipeline pengemasan, penandatanganan kode, dan updater yang mapan.
Kapan memilih Perry
Pilih Perry jika Anda ingin UI yang benar-benar native (bukan HTML yang dirender di webview), binary native kecil tanpa dependensi webview, satu kode sumber TypeScript di desktop + mobile + watch + TV, atau kode widget lintas platform yang divalidasi waktu kompilasi.
Kapan memilih Tauri
Pilih Tauri jika Anda memiliki frontend web yang sudah ada atau direncanakan, ingin aplikasi desktop installer kecil yang didukung Rust, senang dengan HTML/CSS untuk UI, atau menginginkan ekosistem luas framework dan tool web.
Kesimpulan
Tauri adalah Electron yang jauh lebih baik — pendekatan teknologi web yang sama, installer yang jauh lebih kecil karena webview OS tidak dibundel. Tetapi tetap arsitektur berbasis webview, yang berarti rendering HTML/CSS/JS dan bridge IPC. Perry mengambil posisi berbeda: tanpa webview sama sekali, widget platform native, proses tunggal. Jika Anda ingin mempertahankan stack web dengan binary lebih kecil dari Electron, Tauri adalah jawaban yang tepat. Jika Anda ingin meninggalkan stack web demi widget native dalam TypeScript, Perry-lah jawabannya.