Energy是Go基于CEF构建桌面应用的框架

中文 | [English](README.md) --- [![github](https://img.shields.io/github/last-commit/energye/energy/main.svg?logo=github&logoColor=green&label=commit)](https://github.com/energye/energy) [![release](https://img.shields.io/github/v/release/energye/energy?logo=git&logoColor=green)](https://github.com/energye/energy/releases) [![license](https://img.shields.io/github/license/energye/energy.svg?logo=git&logoColor=red)](http://www.apache.org/licenses/LICENSE-2.0) ![repo](https://img.shields.io/github/repo-size/energye/energy.svg?logo=github&logoColor=green&label=repo-size) ![go-version](https://img.shields.io/github/go-mod/go-version/energye/energy?logo=git&logoColor=green) --- ### [项目简介](https://energy.yanghy.cn/course/100/6350f94ca749ba0318943f25) > [energy](https://github.com/energye/energy) 是 Go 基于 CEF(Chromium Embedded Framework) > 开发的框架,内嵌 [CEF](https://bitbucket.org/chromiumembedded/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端很方便功能调用以及数据交互 ### 内置依赖&集成 - [![LCL](https://img.shields.io/badge/LCL-green)](https://github.com/energye/golcl) - [![CEF-CEF4Delphi](https://img.shields.io/badge/CEF(Chromium%20Embedded%20Framework)%20CEF4Delphi-green)](https://github.com/salvadordf/CEF4Delphi) ### [开发环境](https://energy.yanghy.cn/course/100/63511b14a749ba0318943f3a) #### 基本需求 > - Golang >= 1.18 > - Energy 开发环境 > > 使用 energy 命令行工具自动安装开发环境 > > 获取 [energy](https://github.com/energye/energy) 项目,或直接使用预编译命令行工具 [下载地址](https://energy.yanghy.cn/course/100/63511b14a749ba0318943f3a) > >

如果使用预编译命令行工具以下步骤可跳过

> > `go get github.com/energye/energy/v2` > > 进入 [energy](https://github.com/energye/energy) 命令行目录 > > `cd energy/cmd/energy` > > 安装命令行工具 > > `go install` > > 执行安装命令 > > `energy install .` ### 入门指南 - [传送门](https://energy.yanghy.cn) * [教程](https://energy.yanghy.cn/course/100/0) * [示例](https://energy.yanghy.cn/example/200/0) * [文档](https://energy.yanghy.cn/document/300/0) ### 快速入门 > 使用 [energy](https://github.com/energye/energy) 命令行工具自动安装环境依赖 `energy install .` > > 以example/simple示例为例 > > 更新最新发布版本依赖 > > `go mod tidy` > > 在IDE中运行 simple 或 go run simple.go ### example/simple 示例代码 ```go 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) } ``` --- ### 运行应用 - Windows、Linux > `go run simple.go` - MacOS > `go run simple.go energy_env=dev` ### 项目打包 [参考](https://energy.yanghy.cn/course/100/636e397ba749ba01d04ff595) 1. 编译:Go 程序编译`go build simple.go` 如果使用资源内置(HTML、CSS、JavaScript、Image等等)会把资源编译到执行文件内 2. 复制:把执行文件复制到ENERGY环境的CEF目录中即可 3. 打包:使用制作安装包工具将其制作为安装包, 查阅各系统平台安装包制作 4. 最后:编译后的程序或安装包和CEF目录不再需要配置环境,在CEF根目录可直接运行 #### Go编译命令 - `go build -ldflags "-H windowsgui -s -w"` > `-ldflags` > >> `-H windowsgui` 可选: windows 隐藏cmd黑窗口 >> >> `-w` 可选: 去除调试信息, 可减小执行文件大小 >> >> `-s` 可选: 去除符号表信息, 可减小执行文件大小 --- ### 系统支持 ![Windows](https://img.shields.io/badge/windows-supported-success.svg?logo=Windows&logoColor=blue) ![MacOS](https://img.shields.io/badge/MacOS-supported-success.svg?logo=MacOS) ![Linux](https://img.shields.io/badge/Linux-supported-success.svg?logo=Linux&logoColor=red) | | 32位 | 64位 | 测试系统版本 | |-------------|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|------------------------------------| | Windows | ![Windows](https://img.shields.io/badge/supported-success.svg?logo=Windows&logoColor=blue) | ![Windows](https://img.shields.io/badge/supported-success.svg?logo=Windows&logoColor=blue) | Windows 7、Windows 10 | | MacOS | ![MacOS](https://img.shields.io/badge/N/A-inactive.svg?logo=MacOS) | ![MacOS](https://img.shields.io/badge/supported-success.svg?logo=MacOS) | MacOSX 10.15 | | Linux | ![Linux](https://img.shields.io/badge/自编译-supported-success.svg?logo=Linux) | ![Linux](https://img.shields.io/badge/supported-success.svg?logo=Linux&logoColor=red) | Deepin20.8、Ubuntu18.04、LinuxMint21 | | Linux ARM | ![Linux ARM](https://img.shields.io/badge/自编译-supported-success.svg?logo=Linux) | ![Linux ARM](https://img.shields.io/badge/自编译-supported-success.svg?logo=Linux) | Kylin-V10-SP1-2107 | --- ### 鸣谢 Jetbrains

JetBrains Logo (Main) logo.

感谢给项目点个Star, 或三连 --- ### QQ交流群 [![QQGroup](https://img.shields.io/badge/QQ-541258627-green.svg?logo=tencentqq&logoColor=blue)](https://jq.qq.com/?_wv=1027&k=YgFjCGJX)

--- ### 项目截图 ##### Windows-10 ##### Windows-7 32 & 64 ##### Linux - 国产 Deepin ##### Linux - 国产 Kylin ARM ##### Linux - Ubuntu ##### MacOSX ---- ### 开源协议 [![license](https://img.shields.io/github/license/energye/energy.svg?logo=git&logoColor=green)](http://www.apache.org/licenses/LICENSE-2.0)