IOS:修订间差异
ZaneSplash72(留言 | 贡献) 创建页面,内容为“iOS(前称:iPhone OS)是由苹果公司(Apple Inc.)开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这一系统,最初专为iPhone设计,后陆续扩展至iPod touch、iPad及Apple TV等设备。iOS与苹果的macOS操作系统一样,基于Darwin核心,属于类Unix的商业操作系统。2010年6月,苹果公司在全球开发者大会(WWDC)上将系统名称由"iPhone OS"正式更名为"iOS"…” |
TeodoroSeccombe(留言 | 贡献) 小 创建页面,内容为“。” |
||
| 第1行: | 第1行: | ||
{{Infobox | |||
| 标题 = Wails | |||
| 内容 = | |||
{{!}}- | |||
! 开发者 | |||
{{!}} Lea Anthony | |||
{{!}}- | |||
! 首次发布 | |||
{{!}} 2018年 | |||
{{!}}- | |||
! 稳定版本 | |||
{{!}} v2(当前稳定版) | |||
{{!}}- | |||
! 预览版本 | |||
{{!}} v3(Alpha) | |||
{{!}}- | |||
! 编程语言 | |||
{{!}} Go、JavaScript、TypeScript | |||
{{!}}- | |||
! 操作系统 | |||
{{!}} Windows、macOS、Linux | |||
{{!}}- | |||
! 类型 | |||
{{!}} 桌面应用开发框架 | |||
{{!}}- | |||
! 许可证 | |||
{{!}} [[MIT许可证]] | |||
{{!}}- | |||
! 官方网站 | |||
{{!}} https://wails.io | |||
}} | |||
'''Wails'''是一个开源的[[跨平台]]桌面应用开发框架,允许开发者使用Go语言编写后端逻辑,并采用标准[[Web]]技术([[HTML]]、[[CSS]]、[[Java]]Script或[[TypeScript]])构建[[用户]]界面,最终编译为单个原生可执行文件。<ref name=":0">[https://wails.io/docs/introduction/ Wails Documentation - Introduction]</ref><ref name=":1">[https://github.com/wailsapp/wails wailsapp/wails - GitHub]</ref> 该框架由澳大利亚开发者Lea Anthony创建并主导维护,其名称源自创始人故乡威尔士(Wales)的谐音。<ref name=":2">[https://segmentfault.com/a/1190000045355708 用Go开发跨平台GUI - SegmentFault]</ref> Wails采用[[操作系统]]原生WebView进行界面渲染,无需嵌入完整的[[浏览器]]引擎,因而生成的应用程序体积显著小于基于[[Electron]]等方案的同类产品。<ref name=":3">[https://markaicode.com/wails-desktop-app-development-tutorial/ How to Build Apps with Wails - MarkAI Code]</ref> | |||
== | == 历史 == | ||
= | Wails项目于2018年在GitHub上首次公开发布。<ref name=":1" /> 创始人Lea Anthony当时任职于SafetyCulture,旨在为Go语言开发者提供一种轻量级的桌面应用开发方案,以替代传统的内置Web[[服务器]]模式。<ref name=":2" /> | ||
项目早期版本(v1)奠定了Go后端与Web前端结合的基本[[架构]]。随着社区需求增长,Wails v2于2021年前后进入开发,并在随后正式发布为稳定版本。v2引入了多项重大改进,包括基于Vite的前端构建工具链、自动TypeScript绑定生成、原生对话框与菜单支持,以及跨平台统一的事件系统。<ref name=":0" /><ref name=":4">[https://wails.io/changelog/ Wails Changelog]</ref> | |||
2024年起,Wails v3进入Alpha开发阶段。v3版本对框架架构进行了重新设计,引入了服务端模式、改进的构建系统以及更灵活的插件机制,目前仍处于积极开发中。<ref name=":5">[https://v3.wails.io/changelog/ Wails v3 Changelog]</ref> | |||
== 技术架构 == | |||
=== | === 核心设计 === | ||
Wails采用[[前后端分离]]的架构模式。后端由Go语言实现,负责业务逻辑、文件系统访问、网络请求及操作系统API调用;前端则使用任意现代Web技术栈构建,通过框架提供的绑定机制与后端通信。<ref name=":0" /> 与Electron不同,Wails不内嵌[[Chromium]]浏览器,而是调用操作系统原生WebView组件:[[macOS]]使用[[WebKit]],[[Windows]]使用WebView2,[[Linux]]使用WebKitGTK。<ref name=":3" /><ref name=":6">[https://agentskillexchange.com/skills/wails-desktop-app-framework-go-web/ Wails Desktop Application Framework - Agent Skill Exchange]</ref> | |||
== | === 绑定与代码生成 === | ||
= | Wails的核心特性之一是自动绑定生成。开发者只需在Go代码中导出方法,Wails CLI即可自动生成对应的[[JavaScript]]/TypeScript调用接口,实现前后端之间的类型安全通信。<ref name=":0" /> 该机制消除了手动编写桥接代码的需求,显著提升了开发效率。 | ||
=== 构建系统 === | |||
= | Wails提供完整的CLI工具链,支持项目脚手架创建(wails init)、开发服务器(wails dev)及生产构建(wails build)。<ref name=":1" /> 开发模式下,框架支持前后端热重载;生产构建则将前端资源嵌入Go[[二进制]]文件,输出单个可执行程序。<ref name=":7">[https://github.com/threefoldtech/grid-agent GitHub - threefoldtech/grid_agent]</ref> | ||
== 特性 == | |||
Wails框架的主要特性包括:使用标准Go语言开发后端,支持React、Vue、Svelte、Preact、Lit及原生JavaScript等前端技术;自动生成TypeScript类型定义;提供原生对话框、菜单和系统托盘支持;内置暗色/亮色模式切换;支持现代半透明及毛玻璃窗口效果;具备跨平台统一的事件系统;以及使用原生渲染引擎带来的更小二进制体积和更低内存占用。<ref name=":0" /><ref name=":6" /> | |||
== 版本状态 == | |||
截至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。<ref name=":1" /><ref name=":5" /> | |||
== 应用生态 == | |||
Wails已被广泛应用于各类桌面工具的开发,包括[[数据]]库管理工具、MQTT调试客户端、游戏ROM管理[[软件]]、Markdown编辑器及开发辅助工具等。<ref name=":8">[https://github.com/openGemini/openGemini-studio GitHub - openGemini/openGemini-studio]</ref><ref name=":9">[https://github.com/mqtt-viewer/mqtt-viewer GitHub - mqtt-viewer/mqtt-viewer]</ref><ref name=":10">[https://github.com/frontlon/simUI-pulsar GitHub - frontlon/simUI-pulsar]</ref> 其轻量级特性与Go语言的高性能后端能力相结合,使其成为构建跨平台桌面应用的热门选择之一。 | |||
== 参考文献 == | == 参考文献 == | ||
<references /> | <references /> | ||
2026年7月15日 (三) 21:04的版本
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语言的高性能后端能力相结合,使其成为构建跨平台桌面应用的热门选择之一。
参考文献
- ↑ 1.0 1.1 1.2 1.3 1.4 Wails Documentation - Introduction
- ↑ 2.0 2.1 2.2 2.3 wailsapp/wails - GitHub
- ↑ 3.0 3.1 用Go开发跨平台GUI - SegmentFault
- ↑ 4.0 4.1 How to Build Apps with Wails - MarkAI Code
- ↑ Wails Changelog
- ↑ 6.0 6.1 Wails v3 Changelog
- ↑ 7.0 7.1 Wails Desktop Application Framework - Agent Skill Exchange
- ↑ GitHub - threefoldtech/grid_agent
- ↑ GitHub - openGemini/openGemini-studio
- ↑ GitHub - mqtt-viewer/mqtt-viewer
- ↑ GitHub - frontlon/simUI-pulsar