跳到內容
Tauri

Tauri 架構

簡介

Tauri 是一個多語言和通用的工具包,它具有高度的可組合性,並允許工程師製作各種應用程式。它用於使用 Rust 工具和在 Webview 中呈現的 HTML 來建構桌面電腦的應用程式。使用 Tauri 建構的應用程式可以隨附任何數量的可選 JS API 和 Rust API,以便 webview 可以透過訊息傳遞來控制系統。開發人員可以使用自己的功能擴展預設 API,並輕鬆地橋接 Webview 和基於 Rust 的後端。

Tauri 應用程式可以具有托盤式介面。它們可以更新,並由使用者的作業系統按預期方式管理。它們非常小,因為它們使用作業系統的 webview。它們不隨附執行期,因為最終二進位檔是從 Rust 編譯而來的。這使得對 Tauri 應用程式進行逆向工程並非易事

Tauri 不是什麼

Tauri 不是輕量級核心封裝器。相反,它直接使用WRYTAO來執行繁重的工作,即向作業系統發出系統呼叫。

Tauri 不是 VM 或虛擬化環境。相反,它是一個應用程式工具包,允許製作 Webview 作業系統應用程式。

核心生態系統

Diagram
Tauri 架構的簡化表示。

tauri

在 GitHub 上檢視

這是將所有內容整合在一起的主要 crate。它將執行期、巨集、實用程式和 API 整合到一個最終產品中。它在編譯時讀取tauri.conf.json檔案,以引入功能並執行應用程式的實際配置(甚至專案資料夾中的 Cargo.toml 檔案)。它在執行期處理腳本注入(用於 polyfill / 原型修訂)、託管用於系統互動的 API,甚至管理更新過程。

tauri-runtime

在 GitHub 上檢視

Tauri 本身與底層 webview 函式庫之間的膠合層。

tauri-macros

在 GitHub 上檢視

透過利用 tauri-codegen crate,為上下文、處理常式和命令建立巨集。

tauri-utils

在 GitHub 上檢視

在許多地方重複使用的通用程式碼,並提供有用的實用程式,例如剖析組態檔、偵測平台三元組、注入 CSP 和管理資產。

tauri-build

在 GitHub 上檢視

在建置時套用巨集,以設置 cargo 所需的一些特殊功能。

tauri-codegen

在 GitHub 上檢視

嵌入、雜湊和壓縮資產,包括應用程式的圖示和系統托盤。在編譯時剖析 tauri.conf.json 並產生 Config 結構。

tauri-runtime-wry

在 GitHub 上檢視

此 crate 開啟了直接的系統級互動,專門針對 WRY,例如列印、監視器偵測和其他與視窗相關的任務。

Tauri 工具

API (JavaScript / TypeScript)

在 GitHub 上檢視

一個 typescript 函式庫,可為您建立 cjsesm JavaScript 端點,以便您可以匯入到前端框架中,以便 Webview 可以呼叫和監聽後端活動。也以純 typescript 形式發布,因為對於某些框架來說,這樣更佳。它使用 webview 的訊息傳遞來傳遞給其主機。

Bundler (Rust / Shell)

在 GitHub 上檢視

一個函式庫,用於為其偵測到或被告知的平台建置 Tauri 應用程式。目前支援 macOS、Windows 和 Linux - 但在不久的將來也將支援行動平台。可以在 Tauri 專案之外使用。

cli.rs (Rust)

在 GitHub 上檢視

此 Rust 可執行檔提供 CLI 所需的所有必要活動的完整介面。它在 macOS、Windows 和 Linux 上執行。

cli.js (JavaScript)

在 GitHub 上檢視

使用 napi-rs 封裝 cli.rs,為每個平台產生 npm 套件。

create-tauri-app (JavaScript)

在 GitHub 上檢視

一個工具包,使工程團隊能夠使用他們選擇的前端框架(只要已配置)快速搭建新的 tauri-apps 專案。

上游 Crates

Tauri-Apps 組織維護兩個來自 Tauri 的「上游」crate,即用於建立和管理應用程式視窗的 TAO,以及用於與視窗內部的 Webview 介接的 WRY。

TAO

在 GitHub 上檢視

Rust 中的跨平台應用程式視窗建立函式庫,支援所有主要平台,如 Windows、macOS、Linux、iOS 和 Android。它以 Rust 編寫,是 winit 的分支,我們已為自己的需求進行了擴展 - 例如選單列和系統托盤。

WRY

在 GitHub 上檢視

WRY 是一個 Rust 中的跨平台 WebView 渲染函式庫,支援所有主要的桌面平台,如 Windows、macOS 和 Linux。Tauri 使用 WRY 作為抽象層,負責確定使用哪個 webview(以及如何進行互動)。

額外工具

tauri-action

在 GitHub 上檢視

GitHub 工作流程,用於為所有平台建置 Tauri 二進位檔。即使未設定 Tauri,也允許建立(非常基本的)Tauri 應用程式。

tauri-vscode

在 GitHub 上檢視

此專案透過幾個方便的功能增強了 Visual Studio Code 介面。

vue-cli-plugin-tauri

在 GitHub 上檢視

允許您在 vue-cli 專案中非常快速地安裝 Tauri。

外掛程式

Tauri 外掛程式指南

一般來說,外掛程式是由第三方編寫的(即使可能存在官方支援的外掛程式)。外掛程式通常執行 3 項操作

  1. 使 Rust 程式碼能夠「執行某些操作」。
  2. 提供介面膠,使其易於整合到應用程式中。
  3. 提供 JavaScript API,用於與 Rust 程式碼介接。

以下是一些 Tauri 外掛程式的範例

授權條款

Tauri 本身以 MIT 或 Apache-2.0 授權條款授權。如果您重新封裝並修改任何原始碼,您有責任驗證您是否遵守所有上游授權條款。Tauri 按「現狀」提供,不對任何用途的適用性做出明確聲明。

您可以在此處詳細閱讀我們的軟體物料清單


© 2025 Tauri Contributors。CC-BY / MIT