Energy 是Go基于CEF构建桌面应用的框架
简介
energy 是 Go 基于 CEF(Chromium Embedded Framework) 开发的框架,内嵌 CEF 二进制
使用 Go 和 Web 端技术 ( HTML + CSS + JavaScript ) 构建支持Windows, Linux, MacOS跨平台桌面应用
需要会前端技术栈和略懂Go语言
特性
- 开发环境简单,编译速度快,只需要Go开发环境和Energy依赖的CEF二进制框架
- 跨平台: 一套代码可以打包成 Windows, 国产UOS、Deepin、Kylin, MacOS, Linux
- 语言职责
- Go: Go负责窗口创建、CEF配置和功能实现、各种UI组件创建、系统低层调用,和JS处理不了的功能如: 文件流、安全加密、高性能处理等等,可作为纯后端开发
- Web: HTML + CSS + JavaScript 负责客户端界面的功能, 做出任意你想要的界面,可作为纯前端开发
- 前端技术: 支持主流前端框架例如:Vue、React、Angular, 或纯HTML+CSS等等
- 事件驱动: 高性能事件驱动, 基于IPC通信,实现Go和Web端很方便功能调用以及数据交互
事件驱动 Go和Web交互
- 在Go和Web技术基于IPC通信,可以在Go和Web交互数据、事件触发, 可以不使用 http 接口,就像调用语言本身函数一样简单
- 在Go中定义JS绑定类型变量,提供给Web端JS使用,实现Go变量或结构对象数据同步
- 在JS监听事件,在Go中触发JS事件,以达到Go调用JS函数和数据传递
- 在Go监听事件,在JS中触发Go事件,以达到JS调用Go函数和数据传递
开发环境
基本需求
- golang >= 1.18
- energy 开发环境
使用 energy 命令行工具自动安装开发环境
获取 energy 项目,或直接使用预编译命令行工具 下载地址
- go get github.com/energye/energy
进入 energy 命令行目录
- cd energy/cmd/energy
安装命令行工具
- go install
执行安装命令
- energy install .
入门指南 - 传送门
快速入门
使用 energy-cmd 命令行工具自动安装环境依赖
energy install .
以example/simple示例为例
更新最新发布版本依赖
- go mod tidy
在Goland(或其它开发工具)中运行simple 或 go run simple.go
example/simple 示例代码
package main
import (
"github.com/energye/energy/v2/cef"
)
func main() {
//全局初始化 每个应用都必须调用的
cef.GlobalInit(nil, nil)
//创建应用
cefApp := cef.NewApplication()
//指定一个URL地址,或本地html文件目录
cef.BrowserWindow.Config.Url = "https://energy.yanghy.cn"
//运行应用
cef.Run(cefApp)
}
系统支持
开源地址
官网
有疑问加站长微信联系(非本文作者)

性能如何?跟Electron 比有什么优势么
我是Energy之后才听大家说,Electron 我没用过,后来试过仅限于demo, 未深入了解.
Electron 使用 node ,Energy 使用 go。具体优势比较, 语言方面? 其它我还真不知道.
Energy 基于 golcl 和 CEF , golcl 是基于lazarus的 lcl 组件库, lcl 有大多数的系统原生组件 , 在这点上 electron 我不知道什么样.
最后 Energy 结合了 LCL(系统原生UI)和CEF,在Energy中只使用LCL可以开发小巧的PC端软件,也可使用LCL+CEF开发出漂亮的软件。
其它方面、稳定性、扩展、这些问题还需要时间累积来发现和修复。
跟wails相比如何
wails 同样未真正体验过,也是在后面听说这个框架。 Energy 可以操作CEF底层API。