Tauri 架构

简介

Tauri 是一款组合性强的多语言通用工具包,可用于制作各种桌面应用程序。 其基于一系列 Rust 工具及 WebView 内渲染的 HTML 构成。 使用 Tauri 构建的应用可使用任意 JS 和 Rust API,通过消息传递让 WebView 得以控制系统。 开发人员可以用自己的功能扩展默认的应用程序接口,并在 Webview 和基于 Rust 的后台之间轻松搭建桥梁。

Tauri 应用程序可以拥有自定义菜单托盘接口。它们可以更新,并由用户的操作系统进行管理。由于使用的是操作系统的网络视图,它们的体积非常小。由于最终二进制文件是由 Rust 编译而成,因此不需要运行时。因此,反转 Tauri 应用程序并非易事

Tauri 不是什么?

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

Tauri 不是虚拟机或虚拟化环境。相反,它是一个应用程序工具包,可用于制作 Webview OS 应用程序。

核心生态系统

Upstream

Core

WRY

TAO

tauri

tauri-runtime

tauri-macros

tauri-utils

tauri-build

tauri-codegen

tauri-runtime-wry

tauri

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

tauri-runtime

Tauri 本身与底层webview库之间的粘合层。

tauri-macros

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

tauri-utils

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

tauri-build

在构建时应用宏,为 cargo 提供所需的一些特殊功能

tauri-codegen

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

tauri-runtime-wry

该 crate 为 WRY 提供了直接的系统级交互,例如打印、监视器检测以及其他与窗口相关的任务。

Tauri 工具

API (JavaScript / TypeScript)

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

Bundler (Rust / Shell)

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

cli.rs (Rust)

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

cli.js (JavaScript)

使用 napi-rs 构建的 cli.rs 包装器,用于为各个平台构建 npm 包。

create-tauri-app (JavaScript)

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

上游速率

Tauri-Apps组织从Tauri维持两个“上游”箱,即TAO 用于创建和管理应用程序窗口, 和WRY 以在窗口内生存的网页视图接口。

TAO

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

WRY

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

附加工具

tauri-action

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

tauri-vscode

该项目通过几个不错的功能增强了 Visual Studio Code 界面。

vue-cli-plugin-tauri

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

插件

Tauri 插件指南

一般来说,插件是由第三方创作的 (即使可能有官方支持的插件)。 一款插件通常会做三件事:

  1. 使 Rust 代码能够做“某事”。
  2. 提供界面胶水以便于整合到应用中。
  3. 提供用于与 Rust 代码交互的 JavaScript API。

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

许可协议

Tauri 以 MIT 或 Apache 2.0 许可。 如果您重新打包并修改任何源代码,则您有责任验证您是否遵守所有上游许可证。 Tauri 按原样提供,没有明确声明适用于任何目的。

您可以在这里阅读我们的软件材料清单

接下来

您的第一个Tauri应用程序

开发周期

发布

更新