What Tauri Does
- Rust backend — filesystem, shell, network, native APIs
- Commands — TypeScript → Rust function calls
- System tray — cross-platform tray icons
- Menus — native menu bar, context menus
- Updater — cryptographically signed auto-updates
- Sidecar binaries — ship extra executables
- Mobile (v2) — iOS and Android targets
- Permissions — granular allowlist per capability
Architecture
One process split into Core (Rust) + WebView (HTML/JS). Frontend calls Rust commands via IPC. Tauri v2 introduces a plugin system, mobile support, and fine-grained capability-based permissions (replacing the v1 allowlist).
Self-Hosting
npm run tauri build
# Produces platform-specific installers in src-tauri/target/release/bundle/
# .msi / .dmg / .app / .deb / .rpm / .AppImageKey Features
- 3-10MB binaries (vs Electron 150MB)
- Rust backend (memory-safe, fast)
- Mobile support (iOS/Android)
- Capability-based security
- Code signing (Windows + macOS)
- Cross-platform installers
- Plugin ecosystem
- ~80MB idle memory
Comparison
| Framework | Size | Language | Mobile | Runtime |
|---|---|---|---|---|
| Tauri | 3-10MB | Rust + JS | Yes (v2) | OS WebView |
| Electron | ~150MB | JS | No | Chromium + Node |
| Wails | ~8MB | Go + JS | No | OS WebView |
| Neutralino | ~2MB | C++ + JS | No | OS WebView |
FAQ
Q: What do I do about WebView inconsistencies? A: Rendering differs across macOS Safari, Windows Edge, and Linux WebKitGTK. Test every target. Tauri 2 is improving consistency.
Q: Do I have to learn Rust? A: Not for basic commands. You only write Rust when customizing native features. Most web developers pick it up within a few days.
Q: What's the difference between v1 and v2? A: v2 adds mobile support, a new permission system, and a plugin architecture. v1 is desktop-only.
Sources & Credits
- Docs: https://tauri.app/
- GitHub: https://github.com/tauri-apps/tauri
- License: Apache 2.0 / MIT