跳转到内容

Wails:修订间差异

轻之舟百科,让知识轻装启航
云云​(留言 | 贡献)
创建页面,内容为“{{Infobox | 标题 = Wails | 内容 = {{!}}- ! 开发者 {{!}} Lea Anthony {{!}}- ! 首次发布 {{!}} 2018年 {{!}}- ! 稳定版本 {{!}} v2(当前稳定版) {{!}}- ! 预览版本 {{!}} v3(Alpha) {{!}}- ! 编程语言 {{!}} Go、JavaScript、TypeScript {{!}}- ! 操作系统 {{!}} Windows、macOS、Linux {{!}}- ! 类型 {{!}} 桌面应用开发框架 {{!}}- ! 许可证 {{!}} MIT {{!}}- ! 官方网站 {{!}} https://wails.io }} '''Wails'''是一个开…”
 
IdleTap-bot​(留言 | 贡献)
移除 Languages 模板(已清理多语言翻译条目)
 
(未显示1个用户的3个中间版本)
第1行: 第1行:
{{Infobox
{{Infobox En
| 标题 = Wails
| title = Wails
| 内容 =  
| content =  
{{!}}-
{{!}}-
! 开发者
! Développeur
{{!}} Lea Anthony
{{!}} Lea Anthony
{{!}}-
{{!}}-
! 首次发布
! Première version
{{!}} 2018年
{{!}} 2018
{{!}}-
{{!}}-
! 稳定版本
! Version stable
{{!}} v2(当前稳定版)
{{!}} v2 (stable actuelle)
{{!}}-
{{!}}-
! 预览版本
! Version préliminaire
{{!}} v3(Alpha)
{{!}} v3 (Alpha)
{{!}}-
{{!}}-
! 编程语言
! Langages de programmation
{{!}} Go、JavaScript、TypeScript
{{!}} Go, JavaScript, TypeScript
{{!}}-
{{!}}-
! 操作系统
! Systèmes d'exploitation
{{!}} Windows、macOS、Linux
{{!}} Windows, macOS, Linux
{{!}}-
{{!}}-
! 类型
! Type
{{!}} 桌面应用开发框架
{{!}} Framework de développement d'applications de bureau
{{!}}-
{{!}}-
! 许可证
! Licence
{{!}} MIT
{{!}} Licence MIT
{{!}}-
{{!}}-
! 官方网站
! Site officiel
{{!}} https://wails.io
{{!}} 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>
'''W[[AI|ai]]ls''' est un f[[RAM|ram]]ework open source de développement d'applications de bureau multiplateforme qui permet aux développeurs d'écrire la logique back-end en [[Go]] et de construire l'interface utilisateur avec des technologies Web standard ([[HTML]], [[CSS]], [[Java]]Script ou [[TypeScript]]), le tout compilé en un seul exécutable natif.<ref name=":0">[https://wails.io/docs/introduction/ Documentation Wails - Introduction]</ref><ref name=":1">[https://github.com/wailsapp/wails wailsapp/wails - GitHub]</ref> Le f[[RAM|ram]]ework a été créé et est principalement m[[AI|ai]]ntenu par le développeur australien Lea Anthony, son nom étant un jeu de mots sur le pays de Galles (Wales), région d'origine du fondateur.<ref name=":2">[https://segmentfault.com/a/1190000045355708 Développer une interface graphique multiplateforme avec Go - SegmentFault]</ref> Wails utilise le composant [[WebView]] natif du système d'exploitation pour le rendu de l'interface, sans intégrer de moteur de navigateur complet, ce qui donne des applications dont la taille est nettement inférieure à celle des solutions basées sur [[Electron]].<ref name=":3">[https://markaicode.com/wails-desktop-app-development-tutorial/ Comment créer des applications avec Wails - MarkAI Code]</ref>


== 历史 ==
== Historique ==


Wails项目于2018年在GitHub上首次公开发布。<ref name=":1" /> 创始人Lea Anthony当时任职于SafetyCulture,旨在为Go语言开发者提供一种轻量级的桌面应用开发方案,以替代传统的内置Web[[服务器]]模式。<ref name=":2" />
Le projet Wails a été publié pour la première fois sur GitHub en 2018.<ref name=":1" /> Le fondateur Lea Anthony travaillait alors chez SafetyCulture et cherchait à offrir aux développeurs Go une solution légère pour les applications de bureau, en alternative au modèle traditionnel du serveur Web intégré.<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>
La version initiale (v1) a posé les bases de l'architecture combinant un back-end Go et un front-end Web. Avec la croissance des besoins de la communauté, le développement de Wails v2 a commencé vers 2021, pour aboutir à une version stable publiée ultérieurement. v2 a introduit plusieurs améliorations majeures, notamment la chaîne de construction front-end basée sur Vite, la génération automatique de bindings TypeScript, la prise en charge native des boîtes de dialogue et des menus, ainsi qu'un système d'événements unifié multiplateforme.<ref name=":0" /><ref name=":4">[https://wails.io/changelog/ Journal des modifications Wails]</ref>


2024年起,Wails v3进入Alpha开发阶段。v3版本对框架架构进行了重新设计,引入了服务端模式、改进的构建系统以及更灵活的插件机制,目前仍处于积极开发中。<ref name=":5">[https://v3.wails.io/changelog/ Wails v3 Changelog]</ref>
À partir de 2024, Wails v3 est entré en phase de développement Alpha. v3 a repensé l'architecture du framework, introduit un mode serveur, amélioré le système de construction et mis en place un mécanisme de plugins plus flexible. Le développement est toujours en cours.<ref name=":5">[https://v3.wails.io/changelog/ Journal des modifications Wails v3]</ref>


== 技术架构 ==
== Architecture technique ==


=== 核心设计 ===
=== Conception fondamentale ===


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 adopte un modèle d'architecture à séparation front-end/back-end. Le back-end, implémenté en Go, gère la logique métier, l'accès au système de fichiers, les requêtes réseau et les appels aux API du système d'exploitation. Le front-end utilise n'importe quelle pile de technologies Web moderne et communique avec le back-end via le mécanisme de liaison (binding) fourni par le framework.<ref name=":0" /> Contrairement à Electron, Wails n'intègre pas [[Chromium]], mais utilise le composant WebView natif du système d'exploitation : [[WebKit]] sur [[macOS]], WebView2 sur [[Windows]], et WebKitGTK sur [[Linux]].<ref name=":3" /><ref name=":6">[https://agentskillexchange.com/skills/wails-desktop-app-framework-go-web/ Framework d'application de bureau Wails - Agent Skill Exchange]</ref>


=== 绑定与代码生成 ===
=== Liaisons et génération de code ===


Wails的核心特性之一是自动绑定生成。开发者只需在Go代码中导出方法,Wails CLI即可自动生成对应的[[JavaScript]]/TypeScript调用接口,实现前后端之间的类型安全通信。<ref name=":0" /> 该机制消除了手动编写桥接代码的需求,显著提升了开发效率。
L'une des fonctionnalités clés de Wails est la génération automatique de liaisons. Le développeur expose simplement des méthodes dans le code Go, et l'interface en ligne de commande (CLI) de Wails génère automatiquement les appels [[JavaScript]]/TypeScript correspondants, assurant une communication type-safe entre le front-end et le back-end.<ref name=":0" /> Ce mécanisme élimine le besoin d'écrire manuellement du code de pontage, ce qui améliore considérablement la productivité.


=== 构建系统 ===
=== Système de construction ===


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 fournit une chaîne d'outils CLI complète prenant en charge la création de projets (wails init), le serveur de développement (wails dev) et la construction pour la production (wails build).<ref name=":1" /> En mode développement, le framework prend en charge le rechargement à chaud du front-end et du back-end ; en mode production, les ressources front-end sont intégrées dans le binaire Go, produisant un seul exécutable.<ref name=":7">[https://github.com/threefoldtech/grid-agent GitHub - threefoldtech/grid_agent]</ref>


== 特性 ==
== Fonctionnalités ==


Wails框架的主要特性包括:使用标准Go语言开发后端,支持React、Vue、Svelte、Preact、Lit及原生JavaScript等前端技术;自动生成TypeScript类型定义;提供原生对话框、菜单和系统托盘支持;内置暗色/亮色模式切换;支持现代半透明及毛玻璃窗口效果;具备跨平台统一的事件系统;以及使用原生渲染引擎带来的更小二进制体积和更低内存占用。<ref name=":0" /><ref name=":6" />
Les principales fonctionnalités du framework Wails incluent : développement back-end en Go standard, prise en charge de technologies front-end telles que [[React]], Vue, Svelte, Preact, Lit et JavaScript natif ; génération automatique de définitions de types TypeScript ; prise en charge native des boîtes de dialogue, menus et barre d'état système ; basculement intégré entre les modes sombre et clair ; effets de fenêtre modernes semi-transparents et de verre dépoli ; système d'événements unifié multiplateforme ; et, grâce au moteur de rendu natif, une taille de binaire réduite et une empreinte mémoire plus faible.<ref name=":0" /><ref name=":6" />


== 版本状态 ==
== Statut des versions ==


截至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" />
En 2026, Wails maintient deux versions actives : v2 est la version stable actuelle, adaptée à la production, installable via la commande go install github.com/wailsapp/wails/v2/cmd/wails@latest ; v3 est en phase de prévisualisation Alpha, destinée aux premiers utilisateurs et contributeurs, avec la commande d'installation go install github.com/wailsapp/wails/v3/cmd/wails3@latest.<ref name=":1" /><ref name=":5" />


== 应用生态 ==
== Écosystème applicatif ==


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语言的高性能后端能力相结合,使其成为构建跨平台桌面应用的热门选择之一。
Wails est largement utilisé pour le développement de divers outils de bureau, notamment des outils de gestion de bases de données, des clients de débogage MQTT, des logiciels de gestion de ROM de jeux, des éditeurs Markdown et des outils d'a[[IDE|ide]] au développement.<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> Son caractère léger associé aux performances élevées du back-end Go en fait l'un des choix populaires pour la création d'applications de bureau multiplateformes.


== 参考文献 ==
== Références ==


<references />
<references />

2026年8月7日 (五) 02:39的最新版本

Wails
Développeur Lea Anthony
Première version 2018
Version stable v2 (stable actuelle)
Version préliminaire v3 (Alpha)
Langages de programmation Go, JavaScript, TypeScript
Systèmes d'exploitation Windows, macOS, Linux
Type Framework de développement d'applications de bureau
Licence Licence MIT
Site officiel https://wails.io

Wails est un framework open source de développement d'applications de bureau multiplateforme qui permet aux développeurs d'écrire la logique back-end en Go et de construire l'interface utilisateur avec des technologies Web standard (HTML, CSS, JavaScript ou TypeScript), le tout compilé en un seul exécutable natif.[1][2] Le framework a été créé et est principalement maintenu par le développeur australien Lea Anthony, son nom étant un jeu de mots sur le pays de Galles (Wales), région d'origine du fondateur.[3] Wails utilise le composant WebView natif du système d'exploitation pour le rendu de l'interface, sans intégrer de moteur de navigateur complet, ce qui donne des applications dont la taille est nettement inférieure à celle des solutions basées sur Electron.[4]

Historique

[编辑 | 编辑源代码]

Le projet Wails a été publié pour la première fois sur GitHub en 2018.[2] Le fondateur Lea Anthony travaillait alors chez SafetyCulture et cherchait à offrir aux développeurs Go une solution légère pour les applications de bureau, en alternative au modèle traditionnel du serveur Web intégré.[3]

La version initiale (v1) a posé les bases de l'architecture combinant un back-end Go et un front-end Web. Avec la croissance des besoins de la communauté, le développement de Wails v2 a commencé vers 2021, pour aboutir à une version stable publiée ultérieurement. v2 a introduit plusieurs améliorations majeures, notamment la chaîne de construction front-end basée sur Vite, la génération automatique de bindings TypeScript, la prise en charge native des boîtes de dialogue et des menus, ainsi qu'un système d'événements unifié multiplateforme.[1][5]

À partir de 2024, Wails v3 est entré en phase de développement Alpha. v3 a repensé l'architecture du framework, introduit un mode serveur, amélioré le système de construction et mis en place un mécanisme de plugins plus flexible. Le développement est toujours en cours.[6]

Architecture technique

[编辑 | 编辑源代码]

Conception fondamentale

[编辑 | 编辑源代码]

Wails adopte un modèle d'architecture à séparation front-end/back-end. Le back-end, implémenté en Go, gère la logique métier, l'accès au système de fichiers, les requêtes réseau et les appels aux API du système d'exploitation. Le front-end utilise n'importe quelle pile de technologies Web moderne et communique avec le back-end via le mécanisme de liaison (binding) fourni par le framework.[1] Contrairement à Electron, Wails n'intègre pas Chromium, mais utilise le composant WebView natif du système d'exploitation : WebKit sur macOS, WebView2 sur Windows, et WebKitGTK sur Linux.[4][7]

Liaisons et génération de code

[编辑 | 编辑源代码]

L'une des fonctionnalités clés de Wails est la génération automatique de liaisons. Le développeur expose simplement des méthodes dans le code Go, et l'interface en ligne de commande (CLI) de Wails génère automatiquement les appels JavaScript/TypeScript correspondants, assurant une communication type-safe entre le front-end et le back-end.[1] Ce mécanisme élimine le besoin d'écrire manuellement du code de pontage, ce qui améliore considérablement la productivité.

Système de construction

[编辑 | 编辑源代码]

Wails fournit une chaîne d'outils CLI complète prenant en charge la création de projets (wails init), le serveur de développement (wails dev) et la construction pour la production (wails build).[2] En mode développement, le framework prend en charge le rechargement à chaud du front-end et du back-end ; en mode production, les ressources front-end sont intégrées dans le binaire Go, produisant un seul exécutable.[8]

Fonctionnalités

[编辑 | 编辑源代码]

Les principales fonctionnalités du framework Wails incluent : développement back-end en Go standard, prise en charge de technologies front-end telles que React, Vue, Svelte, Preact, Lit et JavaScript natif ; génération automatique de définitions de types TypeScript ; prise en charge native des boîtes de dialogue, menus et barre d'état système ; basculement intégré entre les modes sombre et clair ; effets de fenêtre modernes semi-transparents et de verre dépoli ; système d'événements unifié multiplateforme ; et, grâce au moteur de rendu natif, une taille de binaire réduite et une empreinte mémoire plus faible.[1][7]

Statut des versions

[编辑 | 编辑源代码]

En 2026, Wails maintient deux versions actives : v2 est la version stable actuelle, adaptée à la production, installable via la commande go install github.com/wailsapp/wails/v2/cmd/wails@latest ; v3 est en phase de prévisualisation Alpha, destinée aux premiers utilisateurs et contributeurs, avec la commande d'installation go install github.com/wailsapp/wails/v3/cmd/wails3@latest.[2][6]

Écosystème applicatif

[编辑 | 编辑源代码]

Wails est largement utilisé pour le développement de divers outils de bureau, notamment des outils de gestion de bases de données, des clients de débogage MQTT, des logiciels de gestion de ROM de jeux, des éditeurs Markdown et des outils d'aide au développement.[9][10][11] Son caractère léger associé aux performances élevées du back-end Go en fait l'un des choix populaires pour la création d'applications de bureau multiplateformes.

Références

[编辑 | 编辑源代码]