Energy是Go基于CEF构建桌面应用的框架
中文 | [English](README.md) --- ![go-version](https://img.shields.io/github/go-mod/go-version/energye/energy?logo=git&logoColor=green) [![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) ![Build Status](https://github.com/energye/energy/actions/workflows/go.yml/badge.svg) ![repo](https://img.shields.io/github/repo-size/energye/energy.svg?logo=github&logoColor=green&label=repo-size) [![Go Report](https://goreportcard.com/badge/github.com/energye/energy)](https://goreportcard.com/report/github.com/energye/energy/v2) [![Go Reference](https://pkg.go.dev/badge/github.com/energye/energy)](https://pkg.go.dev/github.com/energye/energy/v2) [![codecov](https://codecov.io/gh/energye/energy/graph/badge.svg?token=H370UFUF12)](https://codecov.io/gh/energye/energy) [![contributors](https://img.shields.io/github/contributors/energye/energy)](https://github.com/energye/energy/graphs/contributors) [![license](https://img.shields.io/github/license/energye/energy.svg?logo=git&logoColor=red)](http://www.apache.org/licenses/LICENSE-2.0) --- ### [项目简介](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跨平台桌面应用 ### 特性 > - 具有丰富的CEF API 和 LCL 系统原生小部件 > - 开发环境简单,编译速度快,仅需Go和Energy依赖的CEF二进制框架 > - 跨平台: 一套代码可以打包成 Windows, 国产UOS、Deepin、Kylin, MacOS, Linux > - 职责 >> - Go: Go负责窗口创建、CEF配置和功能实现、各种UI组件创建、系统低层调用和JS处理不了的功能,如: 文件流、安全加密、高性能处理等 >> - Web: HTML + CSS + JavaScript 负责客户端界面的功能, 做出任意你想要的界面 > - 前端技术: 支持主流前端框架。例如:Vue、React、Angular 和 原生HTML+CSS+JS等 > - 事件驱动: 高性能事件驱动, 基于IPC通信,实现Go和Web端迅捷调用及数据交互 > - 资源加载: 可无需http服务支撑,直接读取本地资源或内置到执行文件的资源, 也支持http服务加载资源 ### 内置依赖&集成 - [![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 开发环境(CEF, liblcl) #### 环境安装 - 自动安装开发环境 > 使用 energy 命令行工具自动安装完整开发环境 [命令行工具下载地址](https://energy.yanghy.cn/course/100/1694511322285207) ### 入门指南 - [传送门](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://energy.yanghy.cn/course/100/1694511322285207) 命令行工具自动安装完整开发环境 ### 三个步骤运行一个简单应用 1. 安装开发环境: `energy install .` 2. 初始化应用: `energy init .` 3. 运行应用: `go run main.go` ### 示例代码 main.go ```go package main import ( "github.com/energye/energy/v2/cef" ) func main() { //全局初始化 cef.GlobalInit(nil, nil) //创建应用 app := cef.NewApplication() //指定一个URL地址,或本地html文件目录 cef.BrowserWindow.Config.Url = "https://energy.yanghy.cn" //运行应用 cef.Run(app) } ``` ### 应用打包 1. 编译:`energy build .` 2. 打包:`energy package .` 3. 自动生成的安装包 - windows 使用`nsis`工具生成exe安装包 - linux 使用`dpkg`制作deb安装包 - macos 生成`xxx.app` ### 系统支持 ![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、Windows 11 | | MacOSX | ![MacOSX](https://img.shields.io/badge/N/A-inactive.svg?logo=MacOS) | ![MacOSX](https://img.shields.io/badge/supported-success.svg?logo=MacOS) | MacOSX 10.15 | | MacOS M1 M2 | ![MacOS](https://img.shields.io/badge/N/A-inactive.svg?logo=MacOS) | ![MacOS](https://img.shields.io/badge/supported-success.svg?logo=MacOS) | MacOS M2 | | 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 | ### 相关项目 * [CEF](https://github.com/chromiumembedded/cef) * [CEF4Delphi](https://github.com/salvadordf/CEF4Delphi) * [CefSharp](https://github.com/cefsharp/CefSharp) * [Java-CEF](https://bitbucket.org/chromiumembedded/java-cef) * [cefpython](https://github.com/cztomczak/cefpython) * [Chromium](https://chromium.googlesource.com/chromium/src/) --- ### 欢迎加入 energy扔处于建设的过程中,有很多的事情无法独自完成,如果有感兴趣的同学想参与energy的实现或学习,可通过微信或QQ联系我。 如果你觉得此项目对你有帮助,请点亮 Star --- ### ENERGY QQ交流群 & 微信--- ### 鸣谢 Jetbrains --- ### 项目截图 ##### 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) ### 贡献者