跳至內容

Wails

輕之舟百科,讓知識輕裝啟航
云云​(對話 | 貢獻)2026年7月22日 (三) 03:41的修訂 (创建页面,内容为“{{Infobox | 标题 = Wails | 内容 = {{!}}- ! 开发者 {{!}} Lea Anthony {{!}}- ! 首次发布 {{!}} 2018年 {{!}}- ! 稳定版本 {{!}} v2(当前稳定版) {{!}}- ! 预览版本 {{!}} v3(Alpha) {{!}}- ! 编程语言 {{!}} Go、JavaScript、TypeScript {{!}}- ! 操作系统 {{!}} Windows、macOS、Linux {{!}}- ! 类型 {{!}} 桌面应用开发框架 {{!}}- ! 许可证 {{!}} MIT {{!}}- ! 官方网站 {{!}} https://wails.io }} '''Wails'''是一个开…”)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)

Wails是一個開源的跨平台桌面應用開發框架,允許開發者使用Go語言編寫後端邏輯,並採用標準Web技術(HTML、CSS、JavaScript或TypeScript)構建用戶界面,最終編譯為單個原生可執行文件。[1][2] 該框架由澳大利亞開發者Lea Anthony創建並主導維護,其名稱源自創始人故鄉威爾斯(Wales)的諧音。[3] Wails採用作業系統原生WebView進行界面渲染,無需嵌入完整的瀏覽器引擎,因而生成的應用程式體積顯著小於基於Electron等方案的同類產品。[4]

歷史

Wails項目於2018年在GitHub上首次公開發布。[2] 創始人Lea Anthony當時任職於SafetyCulture,旨在為Go語言開發者提供一種輕量級的桌面應用開發方案,以替代傳統的內置Web伺服器模式。[3]

項目早期版本(v1)奠定了Go後端與Web前端結合的基本架構。隨着社區需求增長,Wails v2於2021年前後進入開發,並在隨後正式發布為穩定版本。v2引入了多項重大改進,包括基於Vite的前端構建工具鏈、自動TypeScript綁定生成、原生對話框與菜單支持,以及跨平台統一的事件系統。[1][5]

2024年起,Wails v3進入Alpha開發階段。v3版本對框架架構進行了重新設計,引入了服務端模式、改進的構建系統以及更靈活的插件機制,目前仍處於積極開發中。[6]

技術架構

核心設計

Wails採用前後端分離的架構模式。後端由Go語言實現,負責業務邏輯、文件系統訪問、網絡請求及作業系統API調用;前端則使用任意現代Web技術棧構建,通過框架提供的綁定機制與後端通信。[1] 與Electron不同,Wails不內嵌Chromium瀏覽器,而是調用作業系統原生WebView組件:macOS使用WebKit,Windows使用WebView2,Linux使用WebKitGTK。[4][7]

綁定與代碼生成

Wails的核心特性之一是自動綁定生成。開發者只需在Go代碼中導出方法,Wails CLI即可自動生成對應的JavaScript/TypeScript調用接口,實現前後端之間的類型安全通信。[1] 該機制消除了手動編寫橋接代碼的需求,顯著提升了開發效率。

構建系統

Wails提供完整的CLI工具鏈,支持項目腳手架創建(wails init)、開發伺服器(wails dev)及生產構建(wails build)。[2] 開發模式下,框架支持前後端熱重載;生產構建則將前端資源嵌入Go二進制文件,輸出單個可執行程序。[8]

特性

Wails框架的主要特性包括:使用標準Go語言開發後端,支持React、Vue、Svelte、Preact、Lit及原生JavaScript等前端技術;自動生成TypeScript類型定義;提供原生對話框、菜單和系統托盤支持;內置暗色/亮色模式切換;支持現代半透明及毛玻璃窗口效果;具備跨平台統一的事件系統;以及使用原生渲染引擎帶來的更小二進制體積和更低內存佔用。[1][7]

版本狀態

截至2026年,Wails維護兩個活躍版本:v2為當前穩定版本,適用於生產環境,可通過命令go install github.com/wailsapp/wails/v2/cmd/wails@latest安裝;v3處於Alpha預覽階段,面向早期採用者和貢獻者,安裝命令為go install github.com/wailsapp/wails/v3/cmd/wails3@latest。[2][6]

應用生態

Wails已被廣泛應用於各類桌面工具的開發,包括數據庫管理工具、MQTT調試客戶端、遊戲ROM管理軟件、Markdown編輯器及開發輔助工具等。[9][10][11] 其輕量級特性與Go語言的高性能後端能力相結合,使其成為構建跨平台桌面應用的熱門選擇之一。

參考文獻