iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0
Rust

用 Tauri 打造你的應用程式系列 第 3

[Day 03] Tauri 核心原理與架構

  • 分享至 

  • xImage
  •  

要真正掌握 Tauri 的開發,我們必須深入理解其底層架構。今天讓我們認識 Tauri 的核心組件:WRY、TAO 以及 Rust 後端的運作模式。

Tauri 的兩大技術支柱

(圖片取自 Tuari 官網)

WRY:跨平台 Webview 渲染引擎

WRY(Webview Rendering librarY)是 Tauri 生態系統中的重要基石。它是一個純 Rust 編寫的函式庫,專門負責在不同作業系統上建立和管理 Webview 組件。

WRY 的巧妙之處在於它能夠自動選擇最適合的 Webview 實作:在 Windows 上使用 Microsoft Edge WebView2,在 macOS 上使用 WebKit,在 Linux 上則使用 WebKitGTK。這種設計讓 Tauri 的體積更小,不需要像 Electron 那樣打包了整個 Chromium。

TAO:事件驅動的視窗管理

TAO 是另一個關鍵組件,負責處理視窗建立、事件迴圈管理以及使用者輸入處理。它提供了統一的 API 來管理不同平台上的視窗行為,包括視窗的建立、調整大小、最小化、全螢幕切換等操作。

TAO 採用事件驅動的架構,能夠高效地處理使用者互動、系統通知以及應用程式狀態變化,確保 UI 的響應性和流暢度。

Tauri 的運作模式解析

當你啟動一個 Tauri 應用時,實際上是啟動了一個 Rust 編譯的原生程序。這個程序會執行以下步驟:

  1. 初始化核心系統:載入應用設定,建立事件迴圈
  2. 建立 Webview 視窗:透過 WRY 建立一個或多個 Webview 實例
  3. 載入前端內容:將 HTML、CSS、JavaScript 載入到 Webview 中
  4. 建立通訊橋樑:設定前後端之間的 Command 通訊機制 (Inter-Process Communication, IPC)

這種架構的優勢在於,整個應用的核心邏輯都運行在高效能的 Rust 環境中,而前端僅負責使用者介面的渲染和基本互動。

IPC 與 Command 都會在後面的文章做更完整的介紹~

程序隔離與安全機制

Tauri 最值得稱讚的設計之一是其嚴格的程序隔離機制。前端的 JavaScript 程式碼運行在受限的 Webview 沙箱環境中,無法直接存取系統資源或執行危險操作。

所有的系統呼叫都必須透過預先定義的 Command 介面進行,這些 Command 在 Rust 後端中實作並經過嚴格的權限檢查。這種設計即使在前端程式碼被惡意注入或遭受 XSS 攻擊時,也能將潛在風險控制在最小範圍內。

多執行緒模型的優勢

(圖片取自 Tuari 官網)

Rust 天生的多執行緒能力讓 Tauri 能夠充分利用現代多核心處理器的性能。後端可以將耗時的操作(如檔案 I/O、網路請求、資料處理)分配到不同的執行緒中執行,確保主 UI 執行緒始終保持響應。

這種非同步處理模式配合 Rust 的所有權系統,不僅提供了卓越的性能,還從根本上避免了常見的併發問題如資料競爭和記憶體洩漏。

小結

通過深入理解這些核心概念,我們能夠更好地設計和開發 Tauri 應用,充分發揮其在性能、安全性和跨平台相容性方面的優勢。明天我們將開始建立開發環境,終於要來開發 Tauri 了。


上一篇
[Day 02] Tauri 簡介
下一篇
[Day 04] 第一個 Tauri 桌面應用程式
系列文
用 Tauri 打造你的應用程式5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言