五週內重新繪製桌面框架地圖的衝刺
在短短五週內,三個最受關注的跨平台桌面開發框架分別達成了重要里程碑。Electron 42 於 2026 年 5 月 7 日發布,搭載 Chromium 148、Node.js 24 和原生 WebAuthn Touch ID 支援。Dioxus 0.8.0-alpha.0 隨後在 5 月 19 日推出,開啟該框架新的 GPU 加速原生渲染週期,並完成了向 Rust Edition 2024 的遷移。然後,在 2026 年 6 月 21 日——本文截稿前一天——Wails 專案發布了 v3.0.0-alpha2.105,這是目前功能最完整的 alpha 版本,具備完整的 iOS 和 Android 行動支援、TypeScript 作為新專案的預設語言,以及互動式設定精靈。這種匯聚並非巧合:桌面開發正經歷多年來最深層的架構論戰,三個專案都在表明 2026 年中期是擴大受眾的關鍵時刻。
利害關係是真實的。數千萬日常使用者運行基於 Electron 構建的應用程式——VS Code、Slack、Discord、Notion 和 1Password 等——而 Wails 和 Dioxus 正在積累 GitHub Stars 和社群動力,這些通常是主流採用的先兆。2026 年 5 月 在 Hacker News 上廣泛分享的討論中,一位開發者並排比較了全部五個主要跨平台框架,吸引了數百條評論,並結晶化了核心矛盾:Electron 在生態系統成熟度和開發者熟悉度上勝出,但在二進制大小、記憶體佔用和啟動時間上輸給了 OS 級別上每一個重要指標的所有框架。
Wails v3.0.0-alpha2.105:Go 驅動的桌面應用進入行動領地
2026 年 6 月 21 日發布的 Wails v3.0.0-alpha2.105 是快速發布週期的頂峰,自 v3 分支開啟以來已經有超過一百個 alpha 標籤。頭條新聞是全面的行動支援:iOS 和 Android 應用程式現在可以從相同的 Go 程式碼庫構建,該程式碼庫驅動桌面構建,具備原生對話框、剪貼簿存取、生物識別驗證、觸覺回饋、地理定位、相機擷取和背景執行,這些都通過新的 行動功能橋接 連接。通往此版本的路徑是漸進式和有意的。
Alpha 101(6 月 5 日)建立了 iOS 基礎,具備原生訊息對話框、真實螢幕指標、程式碼簽署和 .ipa 打包。Alpha 103(6 月 15 日)重新組織了平台事件模型,引入了行動橋接的 common:*、ios:* 和 android:* 命名空間事件前綴。Alpha 104(6 月 18 日)修補了一個在 iOS 上綁定 Go 方法返回空字串時觸發的崩潰。Alpha 105 完成了循環,引入了 application.System 用於執行時平台偵測,修復了 Windows 最小化崩潰和 Linux GTK 崩潰,使 TypeScript 成為所有入門範本中的預設語言,並發布了針對想要整合自訂 Vite 配置而不是框架捆綁前端工具的開發者的指南。
Wails v2 和 v3 之間的變化
Wails v2 現在正在活躍的生產環境中使用,但 v3 不是點版本升級——它是一次結構性重新思考。最明顯的變化是 多視窗支援:v2 將每個應用程式限制為單個視窗,而 v3 將視窗視為一級執行時物件,可以建立、銷毀、顯示、隱藏和單獨配置,支援浮動調色板、次要編輯器窗格、通知面板和更複雜的 UI 介面。構建系統已完全被替換:v3 不是在單龐大的 CLI 命令中隱藏編譯詳細資訊,而是將每個構建步驟公開為離散工具命令,通過 Taskfile 整合進行編排。開發者現在可以在任何時刻自訂管道——企業團隊若有特殊的簽署或公證工作流,自 v2 發布以來一直要求此功能。
新的 wails3 setup 互動式精靈在 alpha 102 中實驗性推出,在 alpha 105 中完善,可逐步引導首次使用者通過依賴項檢查和行動工具鏈安裝,大大減少了使 Go 為基礎的跨平台構建環境歷來令人生畏的摩擦。該精靈現在也接受 --json 旗標,支援機器可讀輸出,適合自動化 CI 預配。
Wails 背後的架構
Wails 在桌面生態系統中佔據獨特的地位。應用程式後端以 Go 編寫,一種靜態型別編譯語言,可產生小型、自包含的二進制檔案,沒有解譯器開銷。前端由平台的 原生 WebView 呈現——macOS 上的 WKWebView、Windows 上的 WebView2 和 Linux 上的 WebKitGTK——而不是捆綁的 Chromium 執行個體。典型的 Wails 應用程式在低個位數 MB 內發布,而不是 Electron 應用程式所需的 120–150 MB 最小值,啟動時間以十毫秒計,而非秒。取捨是渲染一致性:原生 WebView 在平台和 OS 版本中行為略有不同,偶爾需要 Electron 的 CSS 或 JavaScript 解決方法,使用其固定的 Chromium 快照可完全避免。
「Go 的並行模型使編寫驅動桌面 UI 的後端邏輯變得真正愉快。通道和 goroutine 可清晰映射到事件驅動介面。」—— 反覆出現在 Wails 社群論壇和 Discord 中的觀點
Dioxus 0.8.0-alpha.0:GPU 渲染和 Rust 2024 同時到來
DioxusLabs 於 2026 年 5 月 19 日標記了 v0.8.0-alpha.0,在 0.7 系列最終補丁後約四個月開啟了 0.8 開發週期。該版本被明確定位為週期的開始而非功能完整的預覽,但它已經包含需要專門遷移指南的大型變化——使其成為專案啟動以來最具結構性的 Dioxus alpha。
dioxus-native GPU 渲染器向前邁出重大一步
0.8 alpha 中架構上最重要的變化是 dioxus-native 的成熟,這是使用 wgpu(Rust 的 WebGPU 圖形 API 實作)完全在 GPU 上繪製 Dioxus 應用程式的渲染器。發布說明描述了一次「巨大品質升級」,包括 增量渲染、自訂元素支援以及與 0.7 預覽相比明顯擴展的渲染功能。同時,Blitz 專案——一個模組化 HTML 和 CSS 配置引擎,DioxusLabs 團隊在 Rustweek 2026 上公開展示——正在成為 dioxus-native 的配置骨幹,將熟悉的 CSS 原始物件(如 flexbox、grid 和文字塑形)帶到 GPU 渲染器,而無需在執行時需要完整的瀏覽器引擎。
此方向的重要性難以言喻。Tauri 目前是 Rust 生態系統中最受歡迎的 Electron 替代品,仍在系統 WebView 內呈現其 UI。Dioxus 是 Rust 生態系統中唯一主要框架追求一條可信的道路,其中 WebView 完全可選:相同的 Dioxus 元件樹和基於信號的狀態模型可以針對 WebAssembly 的 Web、WebView 的桌面、原生 GPU 渲染的桌面和行動設備目標——所有這些都無需變更一行應用程式邏輯。當 dioxus-native 達到穩定性時,它將為 Rust 開發者提供一條單一程式碼庫路徑,在執行時完全不依賴瀏覽器引擎。
Rust Edition 2024 和 objc2 遷移
0.8 alpha 將整個 Dioxus 程式碼庫遷移到 Rust Edition 2024,這是自 2021 年以來首次重大語言版本。新版本引入了更清晰的異步閉包語法、改進的暫時生命週期處理,以及自 Rust 1.75 以來一直在討論的配對遍歷符人體工程學的幾項改進。同時,該框架已將其在 macOS 和 iOS 上的遺留 Objective-C FFI 綁定替換為 objc2,一個用於直接呼叫 Apple 平台 API 的現代、記憶體安全的 Rust crate。此遷移消除了 macOS 後端中整個不安全程式碼類別,並將 Dioxus 與 Tauri 團隊、Servo 專案和其他針對 Apple 平台的主要 Rust 專案採取的方法保持一致。
在 Dioxus 0.7 中作為實驗功能引入的熱修補現在在 0.8 alpha CLI 中 預設啟用。該功能允許開發者編輯 Rust 源程式碼,在亞秒時間內在執行中的應用程式中看到變化,而不會失去應用程式狀態。結合新的 Cargo.toml 熱重新載入支援和動態檔案監視器,0.8 開發迴圈現在接近 JavaScript 開發者使用 Vite 驅動的 React 或 Svelte 所認為理所當然的速度。對於編譯的、靜態型別的語言而言,這代表開發者人體工程學的有意義轉變。
0.8 藍圖:FFI、原生小工具和邁向 1.0 的推動
在 GitHub Discussions 上發布的官方 0.8 藍圖 列出了 alpha 尚未提供的幾個頭條功能。Swift、Kotlin 和 Java FFI 橋接 將允許 Dioxus 應用程式直接呼叫平台原生 API,而不通過 web 層路由——支援使用系統相機表、聯絡人、HealthKit 和其他平台特定功能。dioxus-native 中的原生小工具整合將允許 macOS NSTableView 或 Windows ListView 等平台控制項被嵌入到 Dioxus 元件樹中,改進電源使用者介面的可存取性和視覺保真度。藍圖還列出了全面的原生 API,涵蓋相機、地理定位、OAuth 和本機儲存,以及 VSCode 和 Cursor IDE 整合,可直接在編輯器中顯示 Dioxus 特定的診斷和元件預覽。最具後果的藍圖項是聲明的目標「1.0 核心功能供庫作者使用」,這表示該專案正朝著第三方元件庫作者在無懼 Dioxus 次要版本之間的重大變更而發布時所需的 API 穩定性方向發展。
0.8 穩定版本不存在官方時間表,但團隊已表明原生 API 構建塊正在 alpha 版本中增量著陸,自 2026 年初以來明顯加速的社群貢獻——根據團隊的說法——正在以核心團隊預期的速度更快地推進功能。
Electron 42 鞏固了 JavaScript 桌面的生產標準
當 Dioxus 和 Wails 在 alpha 版本中迭代時,Electron 42(2026 年 5 月 7 日發布)定義了 JavaScript 生態系統中生產桌面應用程式的樣子。該版本搭載 Chromium 148.0.7778.96、Node.js 24.15.0 和 V8 14.8。穩定分支在 2026 年 6 月 16 日達到 v42.4.1,更新到 Chromium 148.0.7778.265 和 Node.js 24.16.0。同時,v43.0.0-beta.5 已在測試中,搭載 Chromium 150.0.7871.13,表明 Electron 43 將在 2026 年夏末達到穩定。
Electron 42 中的關鍵新增項
Electron 42 中最開發者面向的變化是框架如何管理自己二進制檔案的重新結構化。以前,electron npm 套件會執行 postinstall 指令碼,在 npm install 後立即下載 Electron 二進制檔案。在版本 42 中,二進制檔案在 首次啟動時動態下載,使 Electron 可以使用 --ignore-scripts 旗標安裝——這是在受限 CI 環境中運作的企業部署長期以來的要求,其中 postinstall 指令碼被安全性原則阻止。下載在隨後執行時正常快取,因此最終使用者沒有執行時延遲成本。
WebAuthn Touch ID 現在是 macOS 上的一級 Electron API。開發者可以通過 app.configureWebAuthn({ touchID: { keychainAccessGroup } }) 啟用生物識別驗證,這是一種以前需要發布自訂原生模組的功能。檢視層動畫通過帶動畫選項的 view.setBounds() 到達,新的 view.setBackgroundBlur() 方法支援 macOS 系統應用程式(如 Finder 和 Notes)廣泛使用的磨砂玻璃處理。在通知方面,Electron 42 從已棄用的 NSUserNotification API 遷移到現代 UNNotification 系統,新增 Notification.getHistory() 和通過 id 和 groupId 選項的分組。此遷移伴隨新的限制:macOS 通知現在需要應用程式 程式碼簽署,這可能影響依賴桌面通知進行使用者回饋的未簽署開發構建。
關於 Electron 佔用空間的持續論戰
Electron 42 採用 Node.js 24 和 Chromium 148 也意味著每個 Electron 應用程式現在都捆綁了一個瀏覽器引擎,——本身——比大多數整個 Wails 或 Tauri 應用程式都大。最小的 Electron 應用程式在磁碟上發布大約 120–150 MB;Slack 或 Discord 等生產應用程式在載入任何使用者資料前在典型使用中消耗超過 300 MB 的 RAM。儘管增量引擎最佳化,這些數字在有意義上沒有改變,它們仍然是競爭框架在開發者對話中提出的主要論證。對於二進制大小或記憶體消耗是硬產品限制的團隊——內嵌式資訊亭、低記憶體設備或針對頻寬昂貴的地區的應用程式——Electron 的佔用空間是真正的不合格因素,而不是可接受的取捨。
架構對峙:三個關於 2026 年桌面未來的不同賭注
合併評估,Electron、Wails 和 Dioxus 代表三種從根本上不同的假設,關於 2026 年理想跨平台桌面執行時的樣子。理解那些假設使框架之間的選擇變成不是偏好的問題,而是哪些取捨與給定專案的限制相符。
Electron:打賭瀏覽器作為通用 UI 工具組
Electron 的假設是 web 平台已經是最好的通用 UI 工具組,正確的方法是將控制的、版本化的 Chromium 副本與 Node.js 執行時配對,並給予開發者對兩者的完整存取。任何 npm 套件、任何 CSS 框架、任何 JavaScript 打包器的運作方式與在 web 上完全相同。成本是每個 Electron 應用程式都附帶完整的瀏覽器:Chromium 加 Node.js 加應用程式自己的 JavaScript 套件。當開發團隊已經存在於 JavaScript 生態系統中、二進制重量對於存取完整 npm 登錄機制是可接受的取捨,以及應用程式需要與相同產品的 web 版本相比功能對等時,Electron 是正確的選擇——VS Code、Notion 和 Figma 都做了這點。
Wails:打賭系統 WebView 搭配 Go 效能
Wails 的假設是現代作業系統已經發布了一個能幹、主動維護的 WebView,開發者應該使用它而不是捆綁自己的。前端仍然是 HTML、CSS 和 JavaScript——React、Vue、Svelte 和 TypeScript 全部開箱即用——但渲染被委派給 WKWebView、WebView2 或 WebKitGTK,取決於平台。後端是編譯後的 Go,它產生沒有解譯器依賴的原生二進制檔案。應用程式在低 MB 內發布,在毫秒內啟動,並使用等效 Electron 一小部分的記憶體。TypeScript 現在是 v3 入門範本的預設值,行動擴張進行中,Wails 清楚地針對想要 JavaScript 式前端生產率搭配 Go 後端效能的開發者——與目前使用 Flutter 進行行動並正在尋找不需要學習 Dart 的桌面路徑的受眾相同。
Dioxus:打賭 Rust 並完全跳過瀏覽器
Dioxus 採取最激進的位置:如果你根本不需要瀏覽器——甚至不需要系統 WebView——會如何?該框架的 dioxus-native 渲染器通過 wgpu 直接在 GPU 上繪製 UI,具有 Blitz 驅動的 HTML 和 CSS 配置引擎,該引擎重新實現了瀏覽器配置模型中足夠的內容,以在沒有瀏覽器執行時的情況下使熟悉的塑形原始物件工作。結果是對瀏覽器引擎沒有依賴的應用程式、單一原生二進制檔案、即時啟動,以及在難以或不可能嵌入 WebView 的平台上運行的能力。風險是 dioxus-native 仍在成熟——0.8 alpha 代表重大進展,但完整渲染與瀏覽器引擎的對等性仍在進行中。該框架也需要知道 Rust,這比 Go 承載了更陡峭的學習曲線,以及比 JavaScript 陡峭得多的學習曲線。但對於已經在 Rust 中工作的團隊,Dioxus 提供了一條通往真正可攜帶、無瀏覽器應用程式的道路,也可以編譯到 WebAssembly 以供 web 使用。
社群動量和接下來會發生什麼
所有三個專案都在 2026 年上半年顯示社群參與的可測量加速。Dioxus GitHub 儲存庫已超過 25,000 顆星,0.8 藍圖討論執行緒吸引了外部貢獻者,他們的 pull 請求——根據核心團隊——已經加速了原生 API 構建塊的交付,超出了預期。Wails 已超過 30,000 顆星,其 Discord 伺服器在 2026 年比任何先前的年份都明顯更活躍。Electron 已超過星計數相關信號的階段,相反受益於其安裝基數:數千萬使用者每天運行 Electron 應用程式,該框架在 OpenJS Foundation 下的治理為企業採用者提供了較新專案還無法提供的長期穩定性保證。
監視的下一個主要里程碑:Electron 43 正在測試中(截至本文撰寫時為 v43.0.0-beta.5),搭載 Chromium 150,預計將在 2026 年夏末前達到穩定。Dioxus 0.8 穩定版本沒有承諾的日期,但團隊正通過 alpha 週期增量發布原生 API 改進。Wails v3 已在 alpha 中超過十八個月;近期標籤中從 alpha 到 alpha2 命名的轉變表明該專案在 beta 前進入第二個、更穩定焦點的階段。TypeScript 現在預設、行動支援著陸、設定精靈發布,v3 比發展中任何先前點更接近穩定版本。
對於今天選擇框架的開發者,社群共識在論壇、Discord 伺服器和討論 2026 年 5 月和 6 月這些版本的 Hacker News 執行緒上保持一致:如果團隊是 JavaScript 原生且二進制大小不是硬限制,選擇 Electron;如果想要 web 堆棧前端生產率搭配 Go 後端效能和最小發運重量,選擇 Wails;如果在 Rust 中構建並想要一個單一程式碼庫,可以針對 web、桌面和行動目標,而不將執行時綁定到瀏覽器引擎,選擇 Dioxus。這些選擇都沒有錯誤,但它們之間的差距——在效能、生態系統和成熟度中——在 2026 年比任何先前的年份更快地縮小。