Wails 是一款开源轻量级跨平台桌面应用开发框架,采用 Go 语言搭配 Vue、React、Svelte 等任意前端框架进行开发。框架主打 体积小巧、秒级启动、原生交互体验、Go 后端高性能并发 ,是目前非常主流的 Electron 轻量化替代方案

 核心原理
打开网易新闻 查看精彩图片
核心原理

后端 :整体后端基于 Go 语言开发,最终编译为 独立的原生二进制文件 ,能够 直接调用系统底层 API ,运行高效无冗余。

前端 :界面基于 HTML、CSS、JavaScript 开发,兼容各类主流前端框架。页面依托 系统原生 WebView 渲染,Windows 适配 WebView2 、macOS 使用 WKWebView 、Linux 采用 WebKitGTK ,全程 不捆绑浏览器内核 ,极大精简了程序体积。

通信机制 :框架内置 IPC 双向通信能力 ,前端可直接调用后端 Go 方法,Go 服务也能主动向前端推送事件,同时支持 自动生成 TS 类型绑定 ,适配类型化开发。

打包方式 :将 Go 二进制文件与前端静态资源整合打包为 单个可执行文件 ,运行 无任何额外依赖 ,双击即可直接启动使用。

核心优势(对比 Electron)

Wails 与 Electron 核心运行参数对比如下:

特性

Wails

Electron

包体积

约 15MB

150MB+

内存占用

约 10MB

100MB+

启动时间

0.5s 以内

2–3s

后端语言

Go(高性能、并发能力强)

Node.js

渲染引擎

系统原生 WebView

内置 Chromium

跨平台

Windows/macOS/Linux

全平台一致

两者核心区别可以一句话概括: Electron 是浏览器内运行应用,Wails 则是原生应用内嵌系统浏览器组件

主要特性

原生体验充足 :完整支持系统 原生窗口、菜单栏、对话框、托盘图标、消息通知、剪贴板、全局快捷键 ,同时适配窗口 半透明、磨砂质感 等原生特效。

多前端框架适配 :内置 Vue、React、Svelte、Preact、Lit、原生 JS 多种开发模板,同时提供 JS、TS 双版本 ,适配不同开发习惯。

开发体验友好 :支持 Vite 前端热更新、Go 代码自动重启、前端可视化调试 ,可 自动生成 TS 类型文件 ,大幅提升开发效率。

生产环境就绪 :原生支持 多窗口开发、系统深度集成、代码签名、一键打包 ,产物符合 应用商店上线规范 ,可直接用于商业项目。

运行零冗余依赖 :Windows 平台 无需 CGO、DLL 依赖 ,macOS、Linux 仅依赖 系统自带基础库 ,兼容性极强。

快速上手(v2 稳定版) 环境准备

安装 Go 1.18 及以上版本 并完成 GOPATH 配置,随后安装 Wails 命令行工具。

创建项目

以 Vue 模板为例,快速初始化项目:

开发运行

执行开发命令启动本地服务:

该命令会同时启动 Go 后端与前端 Vite 服务 ,全程开启 热更新 ,代码修改实时生效。

构建发布
打开网易新闻 查看精彩图片
构建发布

项目开发完成后,执行打包命令编译生产产物:

打包后输出 独立二进制文件 ,Windows 为 exe 文件 、macOS 为 app 文件无环境依赖 ,可直接分发运行。