Why people look past Tauri
Tauri is a good tool, and its apps are small because they use the system WebView. Three things send people looking anyway, all from Tauri's own docs:
- A build per system. Tauri ships an app bundle and DMG on macOS, MSI or NSIS installers on Windows, and Linux packages, each built for that platform (distribution).
- A different WebView on each system. WebView2 on Windows, WKWebView on macOS and webkit2gtk on Linux, so the same frontend renders through three engines (webview versions).
- Permissions cover the frontend, not the core. Capabilities limit what the WebView can call; code in the Rust core and plugins has full access to system resources (security).
Side by side
| Tool | What you ship | Rendering | What limits the app | Phones |
|---|---|---|---|---|
| Tauri | A bundle or installer per operating system. | The system WebView. | Capabilities for the frontend; the Rust core is unconstrained. | Yes. |
| Krate | One .krate file for every desktop. | The Krate runtime draws a native window; no WebView. | The whole app starts with no file or network access until the person allows it. | Not yet. |
| Electron | A package per operating system with its own Chromium and Node.js. | Bundled Chromium. | Renderers sandboxed by default; the main process is not. | No. |
| Wails | A binary per operating system and architecture. | The system WebView. | Go methods bound to the frontend. | v3 only, experimental. |
| Flutter | A build per operating system. | Its own renderer; no WebView. | App Sandbox by default on macOS builds. | Yes. |
Sources: Tauri, Electron sandbox, Wails cross-platform builds, Flutter architecture and Flutter on macOS.
Krate for Tauri developers
Both are Rust. What changes is where the app runs and what you hand people. A Krate app is a WebAssembly component that calls Krate's interfaces for its window, drawing, files, network and storage; the Krate runtime, installed once on each machine, runs the same file everywhere and checks every protected call against what the person granted.
There is no WebView, so there is no HTML to keep: the interface is written against Krate's interfaces, by hand or by Krate Studio's AI. Reusable Rust logic that builds for WebAssembly is a good starting point. Start with a scan that reads your project without building or running it:
krate port ./my-tauri-app
It lists what maps cleanly, what needs a permission and what will not work yet. The porting guide covers the rest.
When Tauri is still the better choice
- You want a web frontend, or already have one.
- You need iOS or Android from the same project.
- You rely on Tauri's plugins or its mature update and installer tooling.
Krate is 0.5.4; the limits page lists what it cannot do yet.
Questions
Can I reuse my Tauri Rust code in Krate?
Logic that builds for WebAssembly usually carries over. Calls into the operating system and the WebView interface move to Krate's interfaces; krate port reports what each part would take.
Does Krate use a WebView?
No. The Krate runtime draws the app's window itself, so the same app does not render through three different browser engines.
Do the Tauri alternatives support phones?
Flutter does, and Wails v3 has experimental mobile support. Electron does not. Krate is desktop only today.
What do people install to open a Krate app?
The Krate runtime, once for their system. After that every .krate opens from the file, and each one shows what it asks for before it runs.