Energy 是 Go 基于 LCL + CEF 实现的跨平台桌面应用框架

关于 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 命令行工具
开发环境 安装教程

开发环境安装好后, 我们使用几个命令创建一个项目

  1. 安装开发环境: energy install .
  2. 初始化应用: energy init .
  3. 运行应用: 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)
}

应用打包

  1. 编译:energy build .
  2. 打包:energy package .
  3. 自动生成的安装包
    • windows 使用nsis工具生成exe安装包
    • linux 使用dpkg制作deb安装包
    • macos 生成xxx.app

文档

energy 官网或 pkg.go.dev
文档目前还不全面, 推荐参考示例

示例

提供了大量的使用示例.
github examples
gitee examples
gitcode examples

一些示例截图

LCL+CEF
Windows XP SP3
frameless-windows-10
macos-menu
macos-dialog
麒麟系统arm64

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!