关于 Energy
Energy是Go语言基于LCL和CEF开发的跨平台桌面应用框架
系统支持
Windows 系列 XP SP3 到 Windows 11, Linux,MacOS.
版本
当前版本2.x
底层动态链接库 liblcl
LCL: Lazarus 跨平台 GUI LCL 组件库, 包含了大量的系统原生GUI控件, 多达几百个控件. 在Go里可以单独构建开发原生系统应用
CEF: Chromium Embedded Framework, 是CEF4Delphi基于CEF3封装的API底层库, 属于LCL其中的一个控件库. 在Go中当前封装了多达85%以上的CEF API. 可以非常方便操作浏览器, 可以实现任何你想对浏览器做的事情.
下个版本3.x, 提供更多的LCL控件, CEF API完全封装, 增加对Webview2, Webkit 支持.
使用
LCL: 在 Go 可独立开发小巧原生的GUI应用.
CEF: 可与LCL结合混合使用,使用前端技术(JavaScript, HTML, CSS)开发GUI应用.
使用 Energy 开发应用
Go: 最底支持Go1.11版本。由于Go版本更新对于一些系统将不在支持。例如Go1.11可以编译支持Windows XP SP3程序,Go1.20支持Window7 / 8 / Server 2008 / Server 2012的最后一个版本, 根据实际情况选择不同的Go版本.
CEF: 同样是对于一些更新后的版本将不在支持一些系统. Energy由于出现的比较晚, 但对于特定的系统做了支持.
- WindowsXP SP3: CEF49, 它比较古老是最后一个支持XP系统的CEF,
- Windows7 / 8 / Server 2008 / Server 2012: CEF109 是最后一个支持此版本的Windows系列
- CEF89: 最后一个支持Flash的CEF版本
- Linux: 区分为 GTK2 和 GTK3, CEF 106是最后一个支持GTK2的. 默认使用GTK3也就是Energy当前支持的最新CEF版本
LCL: 不区分版本, 对任何系统都支持, 一视同仁. 但对CEF有些区别对待, 由于CEF 在Linux 下 对 GTK 支持不同, 表现为, 在Linux 下 CEF 106 使用的是GTK2. CEF大于106使用的是 GTK3 注意: 此时 如使用GTK3将无法使用LCL的组件.
开发环境
使用 energy 提供的工具自动安装开发环境, 它的安装过程主要为, 在网络下载CEF二进制框架和energy的底层动态链接库liblcl, 下载Go(如果已配置则不下载), 和其它可选择工具.
或者自己编译 energy 命令行工具
git clone https://github.com/energye/energy.git
进入 cmd 目录 go install
安装 energy 命令行工具
开发环境 安装教程
开发环境安装好后, 我们使用几个命令创建一个项目
- 安装开发环境:
energy install .
- 初始化应用:
energy init .
- 运行应用:
go run main.go
初始化的代码
package main
import (
"embed"
"github.com/energye/energy/v2/cef"
)
//go:embed resources
var resources embed.FS
func main() {
//Global initialization must be called
cef.GlobalInit(nil, &resources)
//Create an application
app := cef.NewApplication()
//Local load resources
cef.BrowserWindow.Config.LocalResource(cef.LocalLoadConfig{
ResRootDir: "resources",
FS: &resources,
}.Build())
//run app
cef.Run(app)
}
应用打包
- 编译:
energy build .
- 打包:
energy package .
- 自动生成的安装包
- windows 使用
nsis
工具生成exe安装包 - linux 使用
dpkg
制作deb安装包 - macos 生成
xxx.app
- windows 使用
文档
在 energy 官网或 pkg.go.dev
文档目前还不全面, 推荐参考示例
示例
提供了大量的使用示例.
github examples
gitee examples
gitcode examples
一些示例截图