Skip to content

架构:“三明治”模型

要真正掌握 Tauri,了解它与标准网站或 Node.js 应用程序的不同之处会有所帮助。Tauri 应用程序像三明治一样构建,由两个独立层协同工作,以创造无缝的用户体验。

我们三明治的底层是核心进程 (Core Process)。它由 Rust 编写,是应用程序的入口点,并充当协调器。由于它是原生代码,因此可以完全访问操作系统的功能——文件系统、系统托盘、全局快捷键和硬件交互。

核心进程负责创建窗口和管理应用程序生命周期。得益于 Rust 的独特特性,它保证了高性能和内存安全。

顶部(以及美味的馅料)是 WebView。这是用户界面层,你的 HTML、CSS 和 JavaScript 都在这里。如果你来自 Web 开发领域,这就是你的游乐场。它像浏览器一样渲染你的 UI。

这就是 Tauri 占用空间小的秘诀。像 Electron 这样的框架将整个 Chromium 浏览器引擎和 Node.js 运行时捆绑到每个应用程序中。这使得应用程序一致但庞大(一个“Hello World”应用通常超过 100MB)。

Tauri 采取了不同的方法。它依赖于用户操作系统上已安装的 Web 渲染器:

  • Windows:使用 WebView2 (Edge/Chromium)。
  • macOS:使用 WebKit (Safari)。
  • Linux:使用 WebKitGTK。
  • Android/iOS:使用系统的原生 WebView。

通过利用这些现有库,Tauri 应用可以非常小(通常小于 5MB)并立即启动。

为了安全,这两个层(Rust 核心和 WebView)彼此隔离。它们通过一个称为进程间通信 (IPC) 的安全桥梁进行通信。前端向核心发送消息(请求),核心发送响应。

+------------------------------------------+
| 你的前端 (HTML/JS/CSS) |
| [ UI 层 ] |
+---------------------+--------------------+
|
(IPC 桥接 - JSON 消息)
|
+---------------------+--------------------+
| Tauri 核心 (Rust) |
| [ 逻辑、文件系统、数据库、操作系统访问 ] |
+------------------------------------------+
|
[ 操作系统 ]