架构:“三明治”模型
架构:三明治模型
Section titled “架构:三明治模型”要真正掌握 Tauri,了解它与标准网站或 Node.js 应用程序的不同之处会有所帮助。Tauri 应用程序像三明治一样构建,由两个独立层协同工作,以创造无缝的用户体验。
核心进程 (Rust)
Section titled “核心进程 (Rust)”我们三明治的底层是核心进程 (Core Process)。它由 Rust 编写,是应用程序的入口点,并充当协调器。由于它是原生代码,因此可以完全访问操作系统的功能——文件系统、系统托盘、全局快捷键和硬件交互。
核心进程负责创建窗口和管理应用程序生命周期。得益于 Rust 的独特特性,它保证了高性能和内存安全。
WebView (前端)
Section titled “WebView (前端)”顶部(以及美味的馅料)是 WebView。这是用户界面层,你的 HTML、CSS 和 JavaScript 都在这里。如果你来自 Web 开发领域,这就是你的游乐场。它像浏览器一样渲染你的 UI。
原生 Web 渲染器对比捆绑 Chromium
Section titled “原生 Web 渲染器对比捆绑 Chromium”这就是 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) || [ 逻辑、文件系统、数据库、操作系统访问 ] |+------------------------------------------+ | [ 操作系统 ]