跳到内容
Tauri

Tauri 架构

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

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

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

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

Diagram
Tauri 架构的简化表示。

在 GitHub 上查看

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

在 GitHub 上查看

Tauri 本身与底层 webview 库之间的连接层。

在 GitHub 上查看

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

在 GitHub 上查看

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

在 GitHub 上查看

在构建时应用宏,以实现 cargo 所需的一些特殊功能。

在 GitHub 上查看

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

在 GitHub 上查看

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

在 GitHub 上查看

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

在 GitHub 上查看

一个为 Tauri 应用程序构建特定平台版本的库。目前支持 macOS、Windows 和 Linux,但未来将支持移动平台。也可用于 Tauri 项目之外。

在 GitHub 上查看

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

在 GitHub 上查看

使用 napi-rs 围绕 cli.rs 的包装器,用于为每个平台生成 npm 包。

在 GitHub 上查看

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

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

在 GitHub 上查看

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

在 GitHub 上查看

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

在 GitHub 上查看

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

在 GitHub 上查看

此项目通过一些实用的功能增强了 Visual Studio Code 界面。

在 GitHub 上查看

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

Tauri 插件指南

一般来说,插件由第三方开发(尽管可能存在官方支持的插件)。一个插件通常做三件事:

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

以下是 Tauri 插件的一些示例:

Tauri 本身根据 MIT 或 Apache-2.0 许可。如果您重新打包并修改任何源代码,您有责任验证您是否遵守所有上游许可证。Tauri 按原样提供,不明确声明适用于任何特定用途。

您可以在此处查阅我们的软件物料清单


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