Tauri 架構
簡介
Tauri 是一個多語言且通用的工具包,具有高度的組合性,讓工程師能夠製作各種應用程式。它用於結合 Rust 工具和在 Webview 中呈現的 HTML 來建置桌面電腦應用程式。使用 Tauri 建置的應用程式可以搭配任意數量的選用 JS API 和 Rust API,以便 Webview 能夠透過訊息傳遞來控制系統。開發人員可以輕鬆地使用自己的功能來擴充預設 API,並橋接 Webview 和基於 Rust 的後端。
Tauri 應用程式可以有 自訂選單 和 系統匣介面。它們可以 更新,並由使用者的作業系統按預期管理。它們非常小,因為它們使用作業系統的網路檢視。它們不會運送執行時期,因為最終的二進位檔是由 Rust 編譯的。這使得 還原 Tauri 應用程式並非易事。
Tauri 不是什麼
Tauri 不是輕量級的內核包裝器。相反地,它直接使用 WRY 和 TAO 來執行對作業系統進行系統呼叫的繁重工作。
Tauri 不是 VM 或虛擬化環境。相反地,它是一個應用程式工具包,允許製作網路檢視作業系統應用程式。
核心生態系統
tauri
這是將所有內容整合在一起的主要板條箱。它將執行時期、巨集、公用程式和 API 帶入一個最終產品。它在編譯時讀取 tauri.conf.json
檔案,以引入功能並進行應用程式的實際組態(甚至專案資料夾中的 Cargo.toml
檔案)。它在執行時期處理腳本注入(用於多重填充/原型修訂),主控與系統互動的 API,甚至管理更新程序。
tauri-runtime
Tauri 本身與低層級網頁檢視程式庫之間的黏合層。
tauri-macros
透過利用 tauri-codegen
crate,為 context、handler 和指令建立巨集。
tauri-utils
在許多地方重複使用的共用程式碼,並提供有用的公用程式,例如剖析組態檔、偵測平台三重組、注入 CSP 和管理資源。
tauri-build
在建置時套用巨集,以裝配 cargo
所需的一些特殊功能。
tauri-codegen
嵌入、雜湊和壓縮資源,包括應用程式和系統匣的圖示。在編譯時剖析 tauri.conf.json
並產生 Config 結構。
tauri-runtime-wry
這個板條箱開放了專門針對 WRY 的直接系統層級互動,例如列印、監視器偵測和其他與視窗相關的任務。
Tauri Tooling
API(JavaScript / TypeScript)
一個 TypeScript 函式庫,可為您建立 cjs
和 esm
JavaScript 端點,讓您匯入到前端架構中,以便 Webview 可以呼叫和監聽後端活動。也以純 TypeScript 發布,因為對某些架構來說,這比較理想。它使用 Webview 傳遞訊息給其主機。
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
專案,並使用他們選擇的前端框架(只要已設定好)。
上游 Crate
Tauri-Apps 組織維護兩個 Tauri 的「上游」Crate,分別是 TAO,用於建立和管理應用程式視窗,以及 WRY,用於與視窗內的 Webview 介接。
TAO
跨平台應用程式視窗建立函式庫,使用 Rust 編寫,支援所有主要平台,如 Windows、macOS、Linux、iOS 和 Android。使用 Rust 編寫,是 winit 的分支,我們已針對自己的需求進行擴充,例如選單列和系統匣。
WRY
WRY 是跨平台 WebView 渲染函式庫,使用 Rust 編寫,支援所有主要桌面平台,如 Windows、macOS 和 Linux。Tauri 使用 WRY 作為抽象層,負責決定使用哪個 webview(以及如何進行互動)。
其他工具
tauri-action
建立所有平台的 Tauri 二進位檔的 GitHub 工作流程。即使未設定 Tauri,也能建立(非常基本的)Tauri 應用程式。
tauri-vscode
此專案透過多個實用的功能增強 Visual Studio Code 介面。
vue-cli-plugin-tauri
讓您能在 vue-cli 專案中快速安裝 Tauri。
外掛程式
一般來說,外掛程式是由第三方編寫的(即使可能有官方支援的外掛程式)。外掛程式通常會執行 3 件事
- 讓 Rust 程式碼執行「某事」。
- 提供介面黏合,讓外掛程式能輕鬆整合到應用程式中。
- 提供 JavaScript API,讓外掛程式能與 Rust 程式碼進行介面。
以下是 Tauri 外掛程式的範例
授權
Tauri 本身採用 MIT 或 Apache-2.0 授權。如果您重新封裝並修改任何原始程式碼,您有責任確認您遵守所有上游授權。Tauri 以「原樣」提供,未明確宣稱適合任何用途。
您可以在此瀏覽我們的軟體材料清單。