Tauri 2-0 發佈:這次能打敗 Electron 嗎?
最近,在跨平臺開發領域得到廣泛認可的框架 Tauri 發佈了 2.0 版本。讓我們仔細看看一些值得注意的更新。
Tauri 是一個構建輕量級和快速二進制文件的框架,支持所有主要的桌面平臺 (macOS, Linux, Windows) 和移動平臺(iOS, Android)。開發人員可以將任何前端框架(如 HTML、JavaScript 和 CSS)與用 Rust、Swift 和 Kotlin 等語言編寫的後端邏輯結合起來,創建具有卓越用戶體驗的應用程序。
在 Tauri 應用程序中,前端使用熟悉的 web 前端技術構建,並在操作系統的 WebView 中運行,與主要用 Rust 編寫的主應用程序核心通信。開發人員不需要掌握 Rust、Swift 或 Kotlin 的編程技能,因爲 Tauri 提供了豐富的 JavaScript api。
什麼時候應該使用 Tauri?
如果符合以下任何一個要求,Tauri 就可能是你的最佳選擇:
-
想要一個適用於所有平臺的單一 UI 代碼庫?
-
想要在 Windows、macOS、Linux、Android 和 iOS 等不同平臺上獲得儘可能多的用戶?
-
你是一個前端 web 開發人員,想要編寫本地應用程序嗎?
-
你是一名 Rust 開發人員,想要編寫美觀的、可以用 Rust 實現的應用程序嗎?
-
你是否擁有現有的網頁開發團隊,並希望以較低的前期投資擴展到本地應用市場?
-
有一個現有的 Rust 開發團隊,並希望所有的代碼都用 Rust 編寫?
Tauri 的受歡迎程度
在 GitHub 上,Tauri 大約有 4,878 個拉取請求和 3,570 個封閉問題,以及大約 1,000 個討論。Discord 服務器目前有大約 17,700 名成員,他們相互支持,提出問題,並討論與 Tauri 相關的開發主題。
官方還維護了一個與 Tauri 相關的項目、應用程序、插件和指南。如果你正在尋找靈感,你可以看看這裏的內容,並添加到你自己的項目中。
https://github.com/tauri-apps/awesome-tauri?tab=readme-ov-file#applications
Tauri 從 1.0 到 2.0 的旅程
2022 年 6 月,Tauri1.0 發佈,極大地影響了桌面操作系統市場和跨平臺應用程序的構建方式。到 2022 年底,發佈了 2.0 的初始 alpha 版本,以收集反饋並測試移動交互。在接下來的兩年中,Tauri 的體系結構不斷進行調整和優化,並於今年 2 月發佈了 beta 版本,該版本由外部安全公司審覈,以審查決策和體系結構的更改。
今年 8 月,發佈了 2.0 的候選版本,旨在解決主要錯誤並從實際使用中收集更多反饋。經過大量的修復和文檔改進後,穩定版的 Tauri 2.0 正式發佈。
Tauri 2.0 的主要亮點
移動端支持
Tauri 2.0 引入了對 iOS 和 Android 的原生支持,極大地擴展了 Tauri 的用例,並允許開發人員使用全新的移動插件系統將應用程序邏輯暴露給 Tauri 前端。這意味着開發人員不僅可以在桌面平臺上享受到 Tauri 帶來的便利,還可以在移動平臺上無縫重用現有的邏輯代碼。
更好的開發體驗
Tauri 2.0 最近啓動了 create-tauri-app 項目,使開發人員能夠從零開始快速構建一個 Tauri 應用程序並節省時間。
# The available commands are as follows:
sh <( curl https://create.tauri.app/sh )
npm create tauri-app@latest
yarn create tauri-app
pnpm create tauri-app
bun create tauri-app
cargo install create-tauri-app --locked
cargo create-tauri-app
模塊熱更換 (HMR)
Tauri 2.0 擴展了其模塊熱替換功能,以支持移動設備和模擬器,允許開發人員立即預覽更改,而無需重新構建整個應用程序。
高級插件系統
Tauri 2.0 的插件系統已經完全重構,以提供更強的可擴展性和靈活性。許多原始功能已經轉移到官方插件中,以便更容易入門並加速新功能的實現。插件系統支持開發人員編寫或重用 Swift 或 Kotlin 編寫的本地代碼,並通過註釋直接將其暴露給 Tauri 前端。下面是一些重要的插件示例:
新權限系統
Tauri 2.0 引入了一個全新的權限系統來取代之前的允許列表系統。新系統使用權限、範圍和能力來創建一個靈活且易於使用的訪問控制系統。這不僅涵蓋了 Tauri 的核心 api,還支持應用程序和插件開發人員實現自己的訪問控制。
[[permission]]
identifier = 'my-identifier'
description = 'This describes the impact and more.'
commands.allow = [
'read_file'
]
[[scope.allow]]
my-scope = '$HOME/*'
[[scope.deny]]
my-scope = '$HOME/secret'
進程間通信
Tauri 2.0 完全重寫了其內部通信 (IPC) 層,大大提高了數據傳輸效率。
-
Raw Payloads:支持大數據傳輸,提高前端與後端通信效率。
-
Raw Requests:簡化內部消息傳遞機制,加快數據處理速度。
// Sending raw payload in Rust.
tauri::async_runtime::spawn(async {
let payload = vec![1, 2, 3, 4, 5];
tauri::api::ipc::Broadcast::emit('event_name', payload).await.unwrap();
});
支持多渠道分發
Tauri 2.0 爲多渠道應用分發提供官方指導和支持,包括:
-
多平臺的構建
-
自託管分佈
-
包管理器集成
-
提交應用商店
-
Web 部署
這種多渠道的發行支持使開發者能夠輕鬆地將他們的應用發佈到主要平臺,並擴大他們的用戶覆蓋範圍。
總結
Tauri 2.0 帶來了新的跨平臺支持、增強的開發者體驗、更強大的插件系統、更安全的權限管理,並進一步提高了內部數據傳輸效率。通過這些改進,Tauri 2.0 成爲了一個更加靈活和高效的跨平臺應用程序開發框架。無論是桌面應用程序開發人員還是移動應用程序開發人員,Tauri 2.0 都提供了構建高性能跨平臺應用程序的強大工具。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/k1SdXGHhg4C4OWBnyC5ozg