跳到主要内容

Tauri 桌面开发

问题

Tauri 是什么?它与 Electron 相比有什么优势?

答案

Tauri 是用 Rust 构建的桌面应用框架,使用系统 WebView 而非捆绑 Chromium,带来极小的体积和更好的性能。

关于 Electron 和 Tauri 的详细对比,可参考 Electron 桌面开发Tauri 桌面开发

Tauri vs Electron

维度ElectronTauri
后端语言Node.jsRust
渲染引擎捆绑 Chromium系统 WebView
应用体积~150MB~3MB
内存占用~150MB+~30MB
安全模型手动管理权限系统
前端框架任意任意
生态成熟度成熟快速成长

Tauri 2.0 架构

Rust 后端命令

src-tauri/src/lib.rs
use tauri::command;

// 定义一个可从前端调用的命令
#[command]
fn greet(name: &str) -> String {
format!("Hello, {}! From Rust 🦀", name)
}

// 注册命令
fn main() {
tauri::Builder::default()
.invoke_handler(tauri::generate_handler![greet])
.run(tauri::generate_context!())
.expect("error while running app");
}
前端调用
import { invoke } from '@tauri-apps/api/core';

const result = await invoke<string>('greet', { name: 'World' });
console.log(result); // "Hello, World! From Rust 🦀"

常见面试问题

Q1: Tauri 用系统 WebView 有什么问题?

答案

优势:体积小(不捆绑 Chromium) 问题

  • 不同平台的 WebView 版本不同(Windows 的 WebView2 vs macOS 的 WKWebView)
  • CSS/JS 兼容性差异(需要更多测试)
  • Windows 7/8 需要额外安装 WebView2 Runtime

Electron 捆绑 Chromium 的优势就是一致性——所有平台行为相同。

Q2: 什么时候选 Tauri 而非 Electron?

答案

Tauri:体积敏感、性能要求高、安全要求高、团队有 Rust 能力 选 Electron:需要最大浏览器兼容性、依赖 Node.js 生态、团队纯 JS 栈

相关链接