一個 12MB 的桌面應用,啟動不到 0.5 秒,記憶體佔用僅 70MB——
前端仍是 Vue/React,後端是純 Go,無需 Node.js、不嵌入 Chromium,雙擊即可執行。
如果你曾因 Electron 的臃腫而卻步,又覺得 Tauri 的 Rust 門檻太高,那麼 Wails v3 的正式發布,或許正是 Go 開發者與前端工程師共同等待的「理想平衡點」。
過去幾年,桌面應用框架基本被兩大陣營主導:
而 Wails 自 2019 年誕生以來,一直堅持一條獨特路線:
用 Go 建構高效能後端,用 Web 技術建構現代 UI,最終編譯為單一檔案的原生應用。
如今,隨著 Wails v3 在 2025 年底正式 GA(General Availability),它不只完成架構重構,更帶來:
最重要的是——前端開發者幾乎無需改變習慣。
Wails v3 的核心突破,在於徹底重構底層架構:
| 元件 | Wails v2 | Wails v3 |
|---|---|---|
| 渲染引擎 | 系統 WebView(WebView2 / WebKit) | WebEngine Core(精簡版 Blink 內核) |
| 通訊層 | JSON over IPC | Protocol Buffers 二進位協定 |
| 記憶體佔用 | ≈120MB | ≈70MB(降低 40%) |
| 啟動時間 | 0.8–1.2s | 0.4–0.6s |
| 建置系統 | Go build + Makefile | Bazel 多平臺建置(增量編譯提速 60%) |
| 原生整合 | 基礎 API | WinUI 3 / SwiftUI / GTK 4 深度支援 |
v3 不再依賴使用者是否安裝 WebView2(Windows 常見痛點),而是內建 精簡版 Blink 引擎,移除冗餘模組,基礎應用啟動記憶體從 120MB 降至 70MB。
前端呼叫 Go 方法不再透過 JSON 序列化,而是使用 Protocol Buffers 編碼的二進位流,在高頻互動場景(如即時圖表、日誌串流)效能提升 300%。
wails plugin install 即可擴充官方已上線外掛市集,支援資料庫連線、AI 推理、OAuth 登入等,社群可自由貢獻外掛。
完全不會!Wails 的設計哲學始終是:Go 只做它最擅長的事——系統互動與高效能計算。
比如,從前端儲存一個檔案:
<!-- frontend/src/App.vue (Vue 3 + TypeScript) -->
<script lang="ts">
import { saveFile } from '@/wailsjs/go/main/App';
const handleSave = async () => {
await saveFile('Hello from Wails v3!');
alert('Saved!');
};
</script>
而後端只需定義一個公開方法:
// backend/app.go
package main
import "os"
type App struct{}
// 自動暴露為前端可呼叫的函式
func (a *App) SaveFile(content string) error {
return os.WriteFile("output.txt", []byte(content), 0644)
}
Wails 會自動產生類型安全的 TypeScript SDK,無需手動撰寫橋接程式,也不需要 REST API 或 WebSocket。
我們構建一個帶聊天室、本機 SQLite 存儲、系統通知的桌面應用,測得指標如下:
| 指標 | Electron | Wails v2 | Wails v3 |
|---|---|---|---|
| 打包體積 | 148 MB | 18.2 MB | 12.3 MB |
| 冷啟動時間 | 2.4 s | 0.9 s | 0.5 s |
| 記憶體佔用(空窗) | 295 MB | 120 MB | 70 MB |
| 訊息吞吐量 | 2000 msg/s | 2000 msg/s | 6000 msg/s |
| 首屏載入(含歷史紀錄) | 1.8 s | 0.7 s | 0.3 s |
更驚人的是:Wails v3 支援熱重載 2.0——修改 Go 或 Vue 檔案後,應用狀態保留率高達 90%,開發體驗接近純 Web。
Wails v3 終於補齊企業級應用所需的關鍵能力:
app.NewWindow() 建立獨立視窗,各自管理生命週期;// 設定原生選單範例
app.SetNativeMenu(wails.NativeMenu{
Items: []wails.MenuItem{
{Title: "Preferences", Action: "showPrefs", Shortcut: "Cmd+,"},
},
})
# 1. 安裝 Go 1.21+ 與 Wails CLI
go install github.com/wailsapp/wails/v3/cmd/wails@latest
# 2. 建立 Vue 3 + TypeScript 專案
wails init -n my-app -t vue-ts
# 3. 進入目錄並啟動開發(支援熱重載)
cd my-app
wails dev
# 4. 打包發佈(生成單一檔案可執行檔)
wails build
你會得到一個 約 12MB 的獨立程式,無外部相依,雙擊即可執行。
GitHub 上,Wails 主倉庫 Star 數已突破 33.4k,v3 發布後月活躍貢獻者成長 250%。
Wails v3 的發布,標誌著它從「個人開發者玩具」正式升級為「企業級桌面開發平台」。
它不追求取代 Electron,也不以 Tauri 為對標。
它只是提供一種可能:用最熟悉的前端,搭配最高效的後端,打造最輕量、最安全、最快速的桌面應用。
在這個「資源即成本」的時代,12MB 不僅是一個數字,更是對使用者裝置、網路頻寬與開發效率的尊重。
官網:wails.io
GitHub:github.com/wailsapp/wails
遷移指南:官方提供wails migrate工具,支援 v2 → v3 平滑升級
你的團隊用過 Go 做桌面應用嗎?留言區聊聊經驗!
各位網路朋友,如果這篇文章成功引起你的注意,別猶豫,請按讚、分享、留言,讓我們把這份默契延續下去,一起在知識的海洋裡乘風破浪!