Krate
Try Krate
Answer

Krate vs Tauri: one file, every desktop, no per-OS bundles

Tauri uses the system WebView and builds a separate bundle for each operating system; Krate, the app runtime, ships one .krate file with no WebView that runs natively on every desktop, sandboxed with the permissions the user grants. People install the Krate runtime once. Tauri is more mature and also targets Android and iOS; Krate is desktop only today.

Reviewed against Krate 0.5.4. 2 min read

Side by side

Tauri and Krate, reviewed 6 October 2026 against Tauri's official docs
QuestionTauriKrate
What you shipAn installer or bundle per platform: DMG or app bundle, a Windows installer, AppImage, deb, RPM, Flatpak or Snap.One .krate file for macOS, Windows and Linux.
InterfaceYour web frontend in the system WebView: WebView2, WKWebView or webkit2gtk.Krate's own UI interfaces. No WebView.
App logicRust commands, with plugins in Rust, Swift or Kotlin.A WebAssembly component. Rust today.
PermissionsCapability files the developer writes grant or deny commands per window.The app requests access in its manifest; the person running it grants or refuses.
SigningRequired on most platforms. Direct macOS downloads also need notarization.No per-OS signing of the app file. Optional Krate signature with your own key.
PlatformsWindows, macOS, Linux, Android and iOS.macOS, Windows and Linux. iOS and Android exist only as reference ports.
MaturityVersion 2, stable since 2024.Young (0.5.x).

Tauri facts: distribution, capabilities and WebView versions.

Who holds the permissions

Tauri's capabilities limit what the frontend in the WebView may call. They are chosen by the developer, and Tauri's own docs say they do not protect against malicious or insecure Rust code in the app itself. They protect users from a compromised frontend.

In Krate, the whole app is the guest. It cannot call the operating system directly; it calls Krate interfaces, and the runtime checks protected calls against what the person running it allowed. The model is young and its gaps are on the limits page.

Shipping a release

With Tauri, a release means building on each platform, usually in a CI job per system, signing for each platform, and hosting and updating each package. With Krate, a release is one new .krate file that you send or publish. Recipients need a compatible runtime, and runtime updates are separate from yours.

When Tauri is the better choice

  • You want a web frontend, or already have one.
  • You need Android or iOS from the same project.
  • You call native libraries from Rust. A .krate cannot link a native library.
  • You need its plugin ecosystem.

Moving a Tauri app to Krate

Inventory your Rust commands, plugins and WebView interactions, then run the scan, which reads source without building it:

krate port ./my-tauri-app

Pure Rust logic may carry over. The WebView interface and native plugins need adapting to Krate's widgets, canvas and host interfaces. See the porting guide.

Questions

Which one should a Rust developer pick?

Pick Tauri when you want a web frontend, mobile targets or its mature plugin set today. Pick Krate when you want one file for every desktop, no WebView, and permissions the user approves before the app opens.

What does the person I send it to install?

With Tauri, your app's own installer or bundle for their system. With Krate, the Krate runtime once; after that every .krate opens from the file, with no WebView involved.

Is Krate built on Tauri?

No. Krate is its own runtime, built on Wasmtime. It does not use a WebView.

Can a Tauri app run in Krate unchanged?

No. A Tauri app is a native program with a web frontend. A Krate app is a WebAssembly component written against Krate's interfaces, so moving one is a port.

Which one makes smaller downloads?

It depends on what you count. A Tauri app relies on the system WebView, so its package can be small. A Krate app file is small too, but a first-time recipient also downloads the Krate runtime once. Compare runtime plus app for the first app, and the app alone after that.

More answers about shipping desktop apps

Build with Krate

Start with the runtime and a project that fits the current APIs. The runtime and CLI are MIT OR Apache-2.0; Studio has a separate license. Check the licensing details and capability limits.