跳到内容
Tauri

Tauri 架构

介绍

Tauri 是一个多语言和通用的工具包,它非常可组合,并允许工程师制作各种各样的应用程序。它用于构建桌面计算机应用程序,使用 Rust 工具和在 Webview 中渲染的 HTML 的组合。使用 Tauri 构建的应用程序可以附带任意数量的可选 JS API 和 Rust API 组件,以便 webview 可以通过消息传递控制系统。开发者可以使用自己的功能扩展默认 API,并轻松桥接 Webview 和基于 Rust 的后端。

Tauri 应用可以有 托盘类型界面。 它们可以 更新,并由用户的操作系统按预期进行管理。 它们非常小巧,因为它们使用操作系统的 webview。 它们不附带运行时,因为最终的二进制文件是从 Rust 编译而来的。 这使得 反编译 Tauri 应用并非易事

Tauri 不是什么

Tauri 不是轻量级的内核包装器。 相反,它直接使用 WRYTAO 来在进行操作系统系统调用中执行繁重的工作。

Tauri 不是 VM 或虚拟化环境。 相反,它是一个应用程序工具包,允许制作 Webview 操作系统应用程序。

核心生态系统

Diagram
Tauri 架构的简化表示。

tauri

在 GitHub 上查看

这是将所有内容组合在一起的主要 crate。它将运行时、宏、实用程序和 API 整合到一个最终产品中。它在编译时读取 tauri.conf.json 文件以引入功能并进行应用程序的实际配置(甚至包括项目文件夹中的 Cargo.toml 文件)。它处理运行时脚本注入(用于 polyfill / 原型修订),托管用于系统交互的 API,甚至管理更新过程。

tauri-runtime

在 GitHub 上查看

Tauri 本身和更低级别的 webview 库之间的胶水层。

tauri-macros

在 GitHub 上查看

通过利用 tauri-codegen crate 为上下文、处理程序和命令创建宏。

tauri-utils

在 GitHub 上查看

在许多地方重复使用的通用代码,并提供有用的实用程序,例如解析配置文件、检测平台三元组、注入 CSP 和管理资产。

tauri-build

在 GitHub 上查看

在构建时应用宏来绑定 cargo 所需的一些特殊功能。

tauri-codegen

在 GitHub 上查看

嵌入、哈希和压缩资产,包括应用程序的图标以及系统托盘。在编译时解析 tauri.conf.json 并生成 Config 结构。

tauri-runtime-wry

在 GitHub 上查看

此 crate 专门为 WRY 开放直接的系统级交互,例如打印、显示器检测和其他与窗口相关的任务。

Tauri 工具

API (JavaScript / TypeScript)

在 GitHub 上查看

一个 typescript 库,它为您创建 cjsesm JavaScript 端点,以便您可以导入到您的前端框架中,从而使 Webview 可以调用和监听后端活动。也以纯 typescript 形式发布,因为对于某些框架来说,这更优化。它使用 webview 的消息传递到其主机。

打包器 (Rust / Shell)

在 GitHub 上查看

一个库,用于为它检测到或被告知的平台构建 Tauri 应用程序。目前支持 macOS、Windows 和 Linux - 但在不久的将来也将支持移动平台。可以在 Tauri 项目之外使用。

cli.rs (Rust)

在 GitHub 上查看

此 Rust 可执行文件为 CLI 所需的所有必需活动提供完整的接口。它在 macOS、Windows 和 Linux 上运行。

cli.js (JavaScript)

在 GitHub 上查看

使用 napi-rs 封装 cli.rs,为每个平台生成 npm 包。

create-tauri-app (JavaScript)

在 GitHub 上查看

一个工具包,使工程团队能够使用他们选择的前端框架(只要已配置)快速搭建新的 tauri-apps 项目。

上游 Crates

Tauri-Apps 组织维护来自 Tauri 的两个“上游” crate,即用于创建和管理应用程序窗口的 TAO,以及用于与窗口内的 Webview 接口的 WRY。

TAO

在 GitHub 上查看

Rust 中的跨平台应用程序窗口创建库,支持所有主要平台,如 Windows、macOS、Linux、iOS 和 Android。用 Rust 编写,它是 winit 的一个分支,我们为了自己的需求对其进行了扩展 - 例如菜单栏和系统托盘。

WRY

在 GitHub 上查看

WRY 是 Rust 中的跨平台 WebView 渲染库,支持所有主要的桌面平台,如 Windows、macOS 和 Linux。Tauri 使用 WRY 作为抽象层,负责确定使用哪个 webview(以及如何进行交互)。

其他工具

tauri-action

在 GitHub 上查看

GitHub 工作流程,用于为所有平台构建 Tauri 二进制文件。 即使在未设置 Tauri 的情况下,也允许创建(非常基本的)Tauri 应用程序。

tauri-vscode

在 GitHub 上查看

此项目使用一些有用的功能增强了 Visual Studio Code 界面。

vue-cli-plugin-tauri

在 GitHub 上查看

允许您在 vue-cli 项目中非常快速地安装 Tauri。

插件

Tauri 插件指南

一般来说,插件由第三方编写(即使可能存在官方支持的插件)。 插件通常做 3 件事

  1. 使 Rust 代码能够“做某事”。
  2. 提供接口粘合代码,使其易于集成到应用程序中。
  3. 提供 JavaScript API,用于与 Rust 代码交互。

以下是一些 Tauri 插件的示例

许可证

Tauri 本身在 MIT 或 Apache-2.0 许可下获得许可。 如果您重新打包它并修改任何源代码,您有责任验证您是否遵守所有上游许可证。 Tauri 按“原样”提供,不对任何特定用途的适用性做出明确声明。

您可以在这里查阅我们的 软件物料清单


© 2025 Tauri 贡献者。 CC-BY / MIT