Tauri

构建小型、快速和安全的桌面应用程序。使用Web技术构建前端,Rust编写后端,生成原生应用。

2019发布年份
Tauri开发团队

核心特性

Tauri 的设计哲学和关键技术特性

Rust后端

使用Rust编写后端,提供高性能和内存安全。比Electron更轻量,资源占用更少。

Rust高性能内存安全

极小体积

打包体积小,通常只有几MB。比Electron应用小10-20倍,启动速度快。

小体积快速启动轻量级

跨平台

支持Windows、macOS、Linux三大平台。一套代码,多平台运行。

跨平台WindowsmacOS

安全性

默认安全配置,权限系统精细化。前端和后端隔离,防止恶意代码执行。

安全性权限系统隔离

生态系统

围绕 Tauri 构建的完整工具链

前端框架

支持React、Vue、Svelte、Angular等所有前端框架。可使用任何前端技术栈。

ReactVueSvelte

插件系统

丰富的插件系统,支持文件系统、数据库、网络、安全等功能扩展。

@tauri-apps/plugin-fs@tauri-apps/plugin-db插件

构建工具

内置构建和打包工具。支持自动更新、代码签名、多平台构建。

自动更新代码签名多平台构建

UI组件库

可配合任何UI组件库使用。Ant Design、Element Plus、Material-UI等都支持。

Ant DesignElement PlusUI库

状态管理

支持Redux、Zustand、Pinia等状态管理库。前端状态管理完全自由选择。

ReduxZustandPinia

调试工具

内置调试工具,支持Chrome DevTools。可远程调试Rust后端代码。

Chrome DevTools调试远程调试

快速入门

# 安装Tauri CLI
npm install -g @tauri-apps/cli

# 创建Tauri项目
npm create tauri-app@latest my-tauri-app
cd my-tauri-app

# 安装依赖
npm install

# 启动开发服务器
npm run tauri dev

# 构建生产版本
npm run tauri build

配置示例

// src-tauri/tauri.conf.json
{
  "build": {
    "beforeDevCommand": "npm run dev",
    "beforeBuildCommand": "npm run build",
    "devUrl": "http://localhost:1420",
    "target": "target/release"
  },
  "package": {
    "productName": "My Tauri App",
    "version": "0.1.0"
  },
  "tauri": {
    "bundle": {
      "active": true,
      "targets": "all",
      "icon": [
        "icons/32x32.png",
        "icons/128x128.png",
        "icons/128x128@2x.png",
        "icons/icon.icns",
        "icons/icon.ico"
      ]
    },
    "security": {
      "csp": null
    },
    "windows": [
      {
        "fullscreen": false,
        "resizable": true,
        "title": "My Tauri App",
        "width": 800,
        "height": 600
      }
    ]
  }
}

学习资源

官方文档

全面的指南、API参考和教程。

tauri.app/guides →

Tauri GitHub

源代码仓库,可查看源码和参与贡献。

github.com/tauri-apps/tauri →

Tauri插件

官方和社区维护的插件列表。

Plugins →

Tauri示例

官方示例项目和模板。

Examples →

与其他桌面框架对比

vs Electron

Tauri体积更小,性能更好。Electron生态更成熟,社区更大,适合复杂应用。

体积性能生态

vs Flutter Desktop

Tauri使用Web技术,学习成本低。Flutter性能更好,但需要学习Dart语言。

学习成本性能技术栈

vs Qt

Tauri开发效率高,适合快速开发。Qt性能更好,适合复杂图形应用。

开发效率性能应用场景