跳转到内容
Tauri

Tauri架构

介绍

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

Tauri 应用程序可以有托盘类型接口。它们可以更新,并且由用户的操作系统按预期管理。它们非常小,因为它们使用操作系统的 Webview。它们不包含运行时,因为最终的二进制文件是从 Rust 编译的。这使得逆向 Tauri 应用程序不是一件简单的事情

Tauri 不是什么

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

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

核心生态系统

Diagram
Tauri 架构的简化表示。

tauri

在 GitHub 上查看

这是主要的 crate,将所有东西结合在一起。它将运行时、宏、实用程序和 API 整合到一个最终产品中。它在编译时读取 tauri.conf.json 文件以引入功能并进行实际的应用程序配置(甚至项目文件夹中的 Cargo.toml 文件)。它在运行时处理脚本注入(用于 polyfills / 原型修订),托管系统交互的 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 与其宿主之间的消息传递。

Bundler (Rust / Shell)

在 GitHub 上查看

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

cli.rs (Rust)

在 GitHub 上查看

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

cli.js (JavaScript)

在 GitHub 上查看

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

create-tauri-app (JavaScript)

在 GitHub 上查看

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

上游 Crates

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

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 插件指南

一般来说,插件由第三方编写(尽管可能会有官方支持的插件)。一个插件通常做三件事:

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

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

许可证

Tauri 本身根据 MIT 或 Apache-2.0 许可证授权。如果你重新打包它并修改任何源代码,你有责任验证你是否遵守所有上游许可证。Tauri 按原样提供,没有明确声称适合任何目的。

在这里你可以查阅我们的软件材料清单


© 2024 Tauri中文网

备案号:赣ICP备2020014263号-10