Wails v3 正式发布:用 Go 写桌面应用,体积仅 12MB,性能飙升 40%!

一个 12MB 的桌面应用,启动不到 0.5 秒 ,内存占用仅 70MB ------

前端仍是 Vue/React,后端是纯 Go,无需 Node.js,不嵌 Chromium,双击即运行。

如果你曾因 Electron 的臃肿而却步,又觉得 Tauri 的 Rust 门槛太高,那么 Wails v3 的正式发布,或许正是 Go 开发者和前端工程师共同等待的"理想平衡点"。


一、桌面开发的新选择:Go 的优雅回归

过去几年,桌面应用框架基本被两大阵营主导:

  • Electron:简单但笨重;
  • Tauri:轻量但需 Rust。

Wails 自 2019 年诞生以来,一直坚持一条独特路径:

用 Go 构建高性能后端,用 Web 技术构建现代 UI,最终编译为单文件原生应用。

如今,随着 Wails v3 在 2025 年底正式 GA(General Availability),它不仅完成架构重构,更带来:

  • 全新 WebEngine Core 渲染引擎
  • 二进制通信协议(吞吐量提升 3 倍)
  • 多窗口原生支持
  • Bazel 多平台构建系统
  • 企业级插件生态

最重要的是------前端开发者几乎无需改变习惯


二、v3 为何能比 v2 再小 30%?性能提升从何而来?

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 深度支持

关键升级解析:

WebEngine Core:告别 WebView2 依赖

v3 不再依赖用户是否安装 WebView2(Windows 常见痛点),而是内置 精简版 Blink 引擎 ,移除冗余模块,基础应用启动内存从 120MB 降至 70MB

二进制通信:消息吞吐量达 6000 条/秒

从前端调用 Go 方法,不再经过 JSON 序列化,而是通过 Protobuf 编码的二进制流 ,高频交互场景(如实时图表、日志流)性能提升 300%

插件系统:wails plugin install 即可扩展

官方已上线插件市场,支持数据库连接、AI 推理、OAuth 登录等,社区可自由贡献。


三、前端开发者会被 Go 劝退吗?

完全不会!Wails 的设计哲学始终是:Go 只做它最擅长的事------系统交互与高性能计算

比如,从前端保存一个文件:

ts 复制代码
// frontend/src/App.vue (Vue 3 + TypeScript)
import { saveFile } from '@/wailsjs/go/main/App';

const handleSave = async () => {
  await saveFile('Hello from Wails v3!');
  alert('Saved!');
};

而后端只需定义一个公开方法:

go 复制代码
// 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。


四、实测:v3 vs v2 vs Electron

我们构建一个带聊天室、本地 SQLite 存储、系统通知的桌面应用:

指标 Electron Wails v2 Wails v3
打包体积 148 MB 18.2 MB 12.3 MB
冷启动时间 2.4s 0.9s 0.5s
内存占用(空窗) 295 MB 120 MB 70 MB
消息吞吐量 2000 msg/s 2000 msg/s 6000 msg/s
首屏加载(含历史记录) 1.8s 0.7s 0.3s

更惊人的是:Wails v3 支持热重载 2.0 ------修改 Go 或 Vue 文件,应用状态保持率高达90% ,开发体验接近纯 Web。


五、多窗口、原生菜单、沙箱......v3 全都有了

Wails v3 终于补齐了企业级应用所需的关键能力:

  • 多窗口支持app.NewWindow() 创建独立窗口,各自管理生命周期;

  • 原生系统菜单

    go 复制代码
    app.SetNativeMenu(wails.NativeMenu{
        Items: []wails.MenuItem{
            {Title: "Preferences", Action: "showPrefs", Shortcut: "Cmd+,"},
        },
    })
  • 自动沙箱隔离:渲染进程与主进程分离,防止 XSS 攻击扩散;

  • UPX 压缩集成:构建时自动压缩二进制,体积再减 35%。


六、5 分钟上手 Wails v3

bash 复制代码
# 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 左右的独立程序,无外部依赖,双击即运行。


七、谁在用 Wails v3?

  • AI 初创公司:本地 LLM 客户端(如私有知识库问答工具);
  • 金融科技团队:加密数据处理、合规审计工具;
  • DevOps 工程师:K8s 集群监控面板、日志分析器;
  • 开源社区:多个数据库 GUI 工具(如 DBeaver 轻量替代)正在迁移。

GitHub 上,Wails 主仓库 Star 数已突破 33.4k ,v3 发布后月活跃贡献者增长250%


结语:Go + Web,刚刚好

Wails v3 的发布,标志着它从"个人开发者玩具"正式升级为"企业级桌面开发平台"。

它不追求取代 Electron,也不对标 Tauri。

它只是提供一种可能:用最熟悉的前端,搭配最高效的后端,做出最轻量、最安全、最快速的桌面应用

在这个"资源即成本"的时代,12MB 不仅是一个数字,更是对用户设备、网络带宽和开发效率的尊重。

官网:wails.io

GitHub:github.com/wailsapp/wa...

迁移指南:官方提供 wails migrate 工具,支持 v2 → v3 平滑升级

你的团队用过 Go 做桌面应用吗?评论区聊聊体验!


各位互联网搭子,要是这篇文章成功引起了你的注意,别犹豫,关注、点赞、评论、分享走一波,让我们把这份默契延续下去,一起在知识的海洋里乘风破浪!

相关推荐
Pedantic10 小时前
SwiftUI 手势层级(Gesture Hierarchy)详解
前端
飘尘10 小时前
前端转型全栈(Java后端)的快速上手指引
前端·后端·全栈
一颗烂土豆10 小时前
Meshopt 压缩深度解析,为什么它比 Draco 更快
前端·javascript·webgl
浏览器工程师11 小时前
AI Agent 接浏览器任务,先别让它一路点到底
前端·后端
雨季mo浅忆11 小时前
VSCode自动格式化三要素
前端
爱勇宝12 小时前
深扒 Anthropic 1680 位工程师简历:应届生几乎没机会,AI 公司最缺的不是博士
前端·后端·程序员
kyriewen13 小时前
同事每天催我 Code Review,我写了个脚本让 AI 替我 review PR——现在他反过来催 AI 了
前端·javascript·ai编程
user205855615181315 小时前
Windows 项目安装时报 `node-sass` 错误,如何快速处理
前端
LiaCode15 小时前
Redis 在生产项目的使用
前端·后端