一个使用Go语言和现代Web技术构建跨平台桌面应用程序开源项目

大家好,今天给大家分享一个使用Go语言和现代Web技术构建跨平台桌面应用程序开源项目Wails

Wails是一个允许开发者使用Go和Web技术编写桌面应用程序的项目。
它被设计为Go的快速且轻量的Electron替代品,旨在提供一个平台,让开发者可以利用Go的性能优势,并结合任何前端技术栈,如React、Vue或Svelte,来创建桌面应用。

项目介绍

Wails作为一个桥梁,连接强大的Go后端逻辑与丰富的Web前端界面,允许开发者利用两者的最佳特性来开发应用。下面是Wails项目的一些关键特点和优势:

特色功能

1. 跨平台能力

Wails编译的应用可以运行在Windows、macOS和Linux上,支持原生菜单、对话框、主题和半透明,无需为每个平台单独编写代码,大大提高了开发效率和应用的可移植性。

2. Go语言后端

利用Go语言的强大功能和性能优势,处理后台逻辑、文件操作、网络通信等任务,同时享受Go的简洁语法和并发处理能力。

3. Web技术前端

前端界面可以使用诸如Vue.js、React、Angular等现代JavaScript框架来构建,这些技术成熟且拥有活跃的社区支持,便于构建交互丰富的用户界面。

4. 轻量级替代方案

Wails被视作Go语言环境下的轻量级Electron替代品,意味着它可以提供类似Electron的开发体验,但目标是创建更小、更快的应用程序。

5. 内置开发工具

Wails提供了一个命令行工具(wailsdev),用于快速搭建、编译和启动应用,包括自动处理前端依赖安装,简化了开发流程。

6. 社区和资源

有如Awesome Wails这样的资源宝库,为开发者提供了模板、启动器、开源组件等,帮助快速启动项目并提升开发效率。

7. 模块化和可扩展

Wails支持自定义绑定,使得开发者能够轻松地将Go代码暴露给前端JavaScript调用,实现前后端的紧密集成。

安装使用

支持的平台

  • Windows 10/11 AMD64/ARM64
  • MacOS 10.13+ AMD64
  • MacOS 11.0+ ARM64
  • Linux AMD64/ARM64

依赖

Wails 有许多安装前需要的常见依赖项:

  • Go 1.18+
  • NPM (Node 15+)

Go

从 Go 下载页面 下载 Go。

确保您遵守官方的 Go 安装说明。 您还需要确保您的 PATH 环境变量包含您的 ~/go/bin 目录路径。 重启终端并执行以下命令检查:

  • 检查 Go 是否安装正确:go version
  • 检查 “~/go/bin” 是否在您的 PATH 变量中: echo $PATH | grep go/bin

NPM

从 Node 下载页面 下载 NPM。 最好使用最新版本,因为这是我们通常会测试的版本。

运行 npm --version 进行验证。

安装Wails

运行 go install github.com/wailsapp/wails/v2/cmd/wails@latest 安装 Wails CLI。

注意:如果您遇到了类似于以下内容的错误:

....\Go\pkg\mod\github.com\wailsapp\wails\v2@v2.1.0\pkg\templates\templates.go:28:12: pattern all:ides/*: no matching files found

请检查您是否已安装 Go 1.18+ ︰

go version

系统检查

运行 wails doctor 将检查您是否安装了正确的依赖项。 如果没有,它会就缺少的内容提供建议以帮助纠正问题。

创建项目

现在 CLI 已安装,您可以使用 wails init 命令生成一个新项目。

  • Svelte
wails init -n myproject -t svelte

//如果您更愿意使用 TypeScript:
wails init -n myproject -t svelte-ts
  • React
wails init -n myproject -t react

//如果您更愿意使用 TypeScript:
wails init -n myproject -t react-ts
  • Vue
wails init -n myproject -t vue

//如果您更愿意使用 TypeScript:
wails init -n myproject -t vue-ts
  • Preact
wails init -n myproject -t preact

//如果您更愿意使用 TypeScript:
wails init -n myproject -t preact-ts
  • Lit
wails init -n myproject -t lit

//如果您更愿意使用 TypeScript:
wails init -n myproject -t lit-ts

还有提供不同功能和框架的 社区模板

要查看其他可用选项,您可以运行 wails init -help。 更多详细信息可以在 初始化命令 中找到。

项目布局

Wails 项目有以下布局:

.
├── build/
│   ├── appicon.png
│   ├── darwin/
│   └── windows/
├── frontend/
├── go.mod
├── go.sum
├── main.go
└── wails.json

项目结构概要

  • /main.go - 主应用
  • /frontend/ - 前端项目文件
  • /build/ - 项目构建目录
  • /build/appicon.png - 应用程序图标
  • /build/darwin/ - Mac 特定的项目文件
  • /build/windows/ - Windows 特定的项目文件
  • /wails.json - 项目配置
  • /go.mod - Go module 文件
  • /go.sum - Go module 校验文件

frontend 目录没有特定于 Wails 的内容,可以是您选择的任何前端项目。

build 目录在构建过程中使用。 这些文件可以修改以自定义您的构建。 如果从 build 目录中删除文件,将重新生成默认版本。

go.mod 中的默认模块名称是“changeme”。 您应该将其更改为更合适的内容。

编译项目

从项目目录,运行 wails build。 这将编译您的项目并将构建的可用于生产的二进制文件保存在 build/bin 目录中。

如果您运行二进制文件,您应该会看到默认应用程序:

项目地址

https://github.com/wailsapp/wails

一个使用Go语言和现代Web技术构建跨平台桌面应用程序开源项目 - BTool博客 - 在线工具软件,为开发者提供方便 

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 17:28:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 17:28:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 17:28:01       58 阅读
  4. Python语言-面向对象

    2024-07-12 17:28:01       69 阅读

热门阅读

  1. RabbitMQ 高级功能

    2024-07-12 17:28:01       20 阅读
  2. 【QT学习十五】 QT绘图

    2024-07-12 17:28:01       23 阅读
  3. 3213. 最小代价构造字符串

    2024-07-12 17:28:01       20 阅读
  4. 基于 SD 卡的 FatFs 文件系统

    2024-07-12 17:28:01       20 阅读
  5. 拥抱变革,AI工作新纪元

    2024-07-12 17:28:01       19 阅读
  6. 【若依】打开一个新页面

    2024-07-12 17:28:01       22 阅读
  7. Linux跨服务器文件传输

    2024-07-12 17:28:01       20 阅读
  8. 软设之享元模式

    2024-07-12 17:28:01       20 阅读
  9. 3179. K 秒后第 N 个元素的值

    2024-07-12 17:28:01       22 阅读
  10. mysql中的二进制数据类型

    2024-07-12 17:28:01       20 阅读