2023-02-17 17:37:58 +08:00
< p align = "center" >
< img src = "https://assets.yanghy.cn/energy-doc/energy-icon.png" >
< / p >
2023-07-05 17:33:59 +08:00
< p align = "center" style = "font-size: 24px;" >
< strong >
2023-09-15 21:47:40 +08:00
Energy is a framework for Go to build desktop applications based on CEF
2023-07-05 17:33:59 +08:00
< / strong >
< / p >
2023-02-14 20:33:57 +08:00
[中文 ](README.zh_CN.md ) |
2022-12-03 15:05:07 +08:00
English
2022-10-04 16:21:00 +08:00
2022-10-06 16:39:52 +08:00
---
2023-09-28 11:06:26 +08:00
![go-version ](https://img.shields.io/github/go-mod/go-version/energye/energy?logo=git&logoColor=green )
2023-02-14 20:33:57 +08:00
[![github ](https://img.shields.io/github/last-commit/energye/energy/main.svg?logo=github&logoColor=green&label=commit )](https://github.com/energye/energy)
2023-05-31 19:37:08 +08:00
[![release ](https://img.shields.io/github/v/release/energye/energy?logo=git&logoColor=green )](https://github.com/energye/energy/releases)
2023-09-28 11:06:26 +08:00
![Build Status ](https://github.com/energye/energy/actions/workflows/go.yml/badge.svg )
2023-02-14 20:33:57 +08:00
![repo ](https://img.shields.io/github/repo-size/energye/energy.svg?logo=github&logoColor=green&label=repo-size )
2023-10-05 19:47:12 +08:00
[![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)
2023-02-14 20:33:57 +08:00
---
2023-08-14 11:34:02 +08:00
### [Project Introduction](https://energy.yanghy.cn/course/100/6350f94ca749ba0318943f25)
2023-07-05 17:33:59 +08:00
2023-09-15 21:47:40 +08:00
Energy is a framework by Golang based on CEF(Chromium Embedded Framework), embedded
[CEF ](https://bitbucket.org/chromiumembedded/cef ) binary
2023-07-05 17:33:59 +08:00
> [energy](https://github.com/energye/energy) is a framework developed by Golang based on CEF(Chromium Embedded
> Framework), embedded with [CEF](https://bitbucket.org/chromiumembedded/cef) binary
2022-10-06 16:39:52 +08:00
>
2023-07-05 17:33:59 +08:00
> Use Go and Web technology (HTML+CSS+JavaScript) to build cross-platform desktop applications that support Windows,
> Linux and MacOS
2023-02-17 14:34:25 +08:00
### Characteristic
2023-08-22 09:39:45 +08:00
> - Rich CEF API and LCL system native widgets
2023-09-15 21:47:40 +08:00
> - Development environment is simple and the compilation speed is fast. Only need Go and Energy.
> - Cross-Platform: You can package your code as Windows, domestic UOS, Deepin, Kylin, MacOS and Linux
> - Responsibilities
>> - Go: Go is responsible for creating Windows, configuring CEF and implementing functions, creating various UI components, calling the low level of the system and some functions that JS cannot handle, such as: file flow, security encryption, high-performance processing, etc.
>> - Web: HTML + CSS + JavaScript is responsible for the function of the client interface, you can make any interface you want.
> - Front-end technology: Support mainstream frameworks, such as Vue, React, Angular or pure HTML+CSS+JS.
> - Event driven: High performance event driven, based on IPC communication, Go and Web can call each other quality.
> - Esource loading: You can either read local resources or resources build into execution files without http services, or you can load resources using http services.
2023-02-14 20:33:57 +08:00
### Built-in dependency&integration
2022-10-06 16:39:52 +08:00
2023-06-20 19:33:53 +08:00
- [![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)
2023-02-14 20:33:57 +08:00
2023-09-15 19:33:08 +08:00
### [Development Environment](https://energy.yanghy.cn/course/100/63511b14a749ba0318943f3a)
2023-07-05 17:33:59 +08:00
2023-02-14 20:33:57 +08:00
#### Basic needs
2023-07-05 17:33:59 +08:00
2023-09-15 19:33:08 +08:00
> - Golang >= 1.18
> - Energy (CEF, liblcl)
#### Environmental installation
- Automatic installation development environment
2023-09-15 21:47:40 +08:00
> Using the energy command-line tool [Download address](https://energy.yanghy.cn/course/100/1694511322285207)
2023-07-05 17:33:59 +08:00
>
2023-09-15 21:47:40 +08:00
> During the installation process, you can optionally install the following frameworks and tools, or you can download the resources yourself.
2023-09-15 19:33:08 +08:00
| Name | Platform | illustrate |
|-------------|----------------|----------------------------------------------|
| Golang | ALL | Golang Development Environment |
| CEF, liblcl | ALL | CEF Framework |
| NSIS | Windows | Windows Installation package production tool |
2023-09-27 21:33:59 +08:00
| UPX | All | Execute file compression tool |
2023-09-15 19:33:08 +08:00
| 7z | Windows, Linux | CEF Framework compression tool |
2022-10-18 15:15:29 +08:00
2023-09-15 21:47:40 +08:00
### Guide to Start - [Link](https://energy.yanghy.cn)
2023-02-14 20:33:57 +08:00
2023-08-14 11:34:02 +08:00
* [Course ](https://energy.yanghy.cn/course/100/0 )
* [Example ](https://energy.yanghy.cn/example/200/0 )
* [Document ](https://energy.yanghy.cn/document/300/0 )
2022-10-06 16:39:52 +08:00
2023-09-15 21:47:40 +08:00
### Quick Start
2023-07-05 17:33:59 +08:00
2023-09-15 21:47:40 +08:00
> Using [energy](https://energy.yanghy.cn/course/100/1694511322285207) Command line tools to install the complete development environment automatically.
2023-09-15 19:33:08 +08:00
2023-09-15 21:47:40 +08:00
### Run a simple application by three steps
2023-09-15 19:33:08 +08:00
2023-09-15 21:47:40 +08:00
1. Install development environment: `energy install .`
2. Initiate an Application: `energy init .`
3. Run the Application: `go run main.go`
2023-09-15 19:33:08 +08:00
### sample code
2023-02-14 20:33:57 +08:00
2023-09-15 19:33:08 +08:00
main.go
2022-10-06 16:39:52 +08:00
```go
package main
import (
2023-05-31 18:00:34 +08:00
"github.com/energye/energy/v2/cef"
2022-10-06 16:39:52 +08:00
)
func main() {
2023-09-15 19:33:08 +08:00
//Global initialization
2023-02-02 19:37:16 +08:00
cef.GlobalInit(nil, nil)
2023-09-15 19:33:08 +08:00
//Create an application
app := cef.NewApplication()
//Specify a URL address or local HTML file directory
cef.BrowserWindow.Config.Url = "https://energy.yanghy.cn"
//Run Application
cef.Run(app)
2022-10-06 16:39:52 +08:00
}
```
2023-07-05 17:33:59 +08:00
2023-09-15 21:47:40 +08:00
### Build
1. Build: `energy build .`
2. Package: `energy package .`
3. Package Type:
2023-09-15 19:33:08 +08:00
- windows Using`nsis`Create exe installation package
- linux Using`dpkg`Create deb installation package
- macos Generate`xxx.app`
2023-07-05 17:33:59 +08:00
2023-02-14 20:33:57 +08:00
### System support
![Windows ](https://img.shields.io/badge/windows-supported-success.svg?logo=Windows&logoColor=blue )
2023-06-29 12:33:44 +08:00
![MacOS ](https://img.shields.io/badge/MacOS-supported-success.svg?logo=MacOS )
2023-02-14 20:33:57 +08:00
![Linux ](https://img.shields.io/badge/Linux-supported-success.svg?logo=Linux&logoColor=red )
2023-08-31 14:05:20 +08:00
| | 32 Bit | 64 Bit | Test System Version |
|-------------|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|------------------------------------|
| 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 | ![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 |
| 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, Rosetta2 AMD |
| Linux | ![Linux ](https://img.shields.io/badge/SelfCompila-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/SelfCompila-supported-success.svg?logo=Linux ) | ![Linux ARM ](https://img.shields.io/badge/SelfCompila-supported-success.svg?logo=Linux ) | Kylin-V10-SP1-2107 |
2023-02-14 20:33:57 +08:00
2023-09-25 14:43:59 +08:00
### Related Projects
* [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/ )
2023-02-14 20:33:57 +08:00
---
2023-06-14 10:37:26 +08:00
### Thanks Jetbrains
< p align = "center" >
< a href = "https://www.jetbrains.com?from=energy" >
< img src = "https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg" alt = "JetBrains Logo (Main) logo." >
< / a >
< / p >
2023-09-15 21:47:40 +08:00
If this project is helpful to you, please give me a star
2023-06-20 19:33:53 +08:00
2023-06-14 10:37:26 +08:00
---
2023-02-14 20:33:57 +08:00
### QQ Group
[![QQGroup ](https://img.shields.io/badge/QQ-541258627-green.svg?logo=tencentqq&logoColor=blue )](https://jq.qq.com/?_wv=1027& k=YgFjCGJX)
2023-06-14 10:37:26 +08:00
< p align = "center" >
< img src = "https://assets.yanghy.cn/energy-doc/qq-group.jpg" width = "250" >
< / p >
2023-07-09 19:21:20 +08:00
2023-02-14 20:33:57 +08:00
---
### Project screenshot
2023-07-05 17:33:59 +08:00
2023-02-14 20:33:57 +08:00
##### Windows-10
2023-06-14 10:37:26 +08:00
2023-02-17 13:02:16 +08:00
< img src = "https://assets.yanghy.cn/energy-doc/frameless-windows-10.png" >
2023-02-14 20:33:57 +08:00
2023-02-17 12:59:36 +08:00
##### Windows-7 32 & 64
2023-07-05 17:33:59 +08:00
2023-02-17 13:02:16 +08:00
< img src = "https://assets.yanghy.cn/energy-doc/frameless-windows-7-64.png" >
< img src = "https://assets.yanghy.cn/energy-doc/frameless-windows-7-32.png" >
2023-02-14 20:33:57 +08:00
2023-02-17 12:59:36 +08:00
##### Linux - Deepin
2023-07-05 17:33:59 +08:00
2023-02-17 13:02:16 +08:00
< img src = "https://assets.yanghy.cn/energy-doc/frameless-deepin-20.8.png" >
< img src = "https://assets.yanghy.cn/energy-doc/frameless-deepin-hide-20.8.png" >
2023-02-14 20:33:57 +08:00
2023-02-17 12:59:36 +08:00
##### Linux - Kylin ARM
2023-07-05 17:33:59 +08:00
2023-02-17 13:02:16 +08:00
< img src = "https://assets.yanghy.cn/energy-doc/frameless-kylin-arm-V10-SP1.png" >
< img src = "https://assets.yanghy.cn/energy-doc/frameless-kylin-arm-hide-V10-SP1.png" >
2023-02-17 12:59:36 +08:00
##### Linux - Ubuntu
2023-07-05 17:33:59 +08:00
2023-02-17 13:02:16 +08:00
< img src = "https://assets.yanghy.cn/energy-doc/frameless-ubuntu-18.04.6.png" >
< img src = "https://assets.yanghy.cn/energy-doc/frameless-ubuntu-hide-18.04.6.png" >
2023-02-14 20:33:57 +08:00
##### MacOSX
2023-07-05 17:33:59 +08:00
2023-02-17 13:02:16 +08:00
< img src = "https://assets.yanghy.cn/energy-doc/frameless-macos.png" >
2023-02-14 20:33:57 +08:00
2022-10-18 17:21:02 +08:00
2022-10-18 18:16:16 +08:00
----
2023-02-14 20:33:57 +08:00
### Public License
[![license ](https://img.shields.io/github/license/energye/energy.svg?logo=git&logoColor=green )](http://www.apache.org/licenses/LICENSE-2.0)
2023-08-22 17:28:45 +08:00
### Contributors
< a href = "https://github.com/energye/energy/graphs/contributors" >
< img src = "https://opencollective.com/energy/contributors.svg?width=890&button=false" / >
< / a >