README.md 8.0 KB
Newer Older
yanghye's avatar
yanghye 已提交
1 2 3
# Energy is the framework for Go to build desktop applications based on CEF

[中文](README.zh_CN.md) |
yanghye's avatar
yanghye 已提交
4
English
yanghye's avatar
readme  
yanghye 已提交
5

yanghye's avatar
yanghye 已提交
6
---
yanghye's avatar
yanghye 已提交
7 8 9 10 11 12 13 14 15 16 17 18 19
[![github](https://img.shields.io/github/last-commit/energye/energy/main.svg?logo=github&logoColor=green&label=commit)](https://github.com/energye/energy)
[![license](https://img.shields.io/github/license/energye/energy.svg?logo=git&logoColor=red)](http://www.apache.org/licenses/LICENSE-2.0)
[![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)
![downloads](https://img.shields.io/github/downloads/energye/energy/total?logo=git&logoColor=green)
![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)
---

### [Project Introduction](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/6350f94ca749ba0318943f25)
Energy is a framework developed by Golang based on CEF(Chromium Embedded Framework), embedded with [CEF](https://bitbucket.org/chromiumembedded/cef) binary
> [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
yanghye's avatar
yanghye 已提交
20
>
yanghye's avatar
yanghye 已提交
21
> Use Go and Web technology (HTML+CSS+JavaScript) to build cross-platform desktop applications that support Windows, Linux and MacOS
yanghye's avatar
yanghye 已提交
22
>
yanghye's avatar
yanghye 已提交
23 24 25 26 27 28 29 30 31 32 33
> Based on Go and CEF cross-platform features

### Go interacts with the Web

> The Go and Web technologies are based on IPC communication.  Data and event triggering can be exchanged between Go and Web without using the http interface, which is as simple as calling the functions of the language itself
>
> Define JS binding type variables in Go and provide them to JS on the Web side to realize data synchronization of Go variables or structural objects
>
> Listen for events in JS and trigger JS events in Go to achieve Go calling JS functions and passing parameter
>
> Listen for events in Go and trigger Go events in JS to achieve JS calling Go functions and passing parameters
yanghye's avatar
yanghye 已提交
34
>
yanghye's avatar
readme  
yanghye 已提交
35

yanghye's avatar
yanghye 已提交
36
### Built-in dependency&integration
yanghye's avatar
yanghye 已提交
37

yanghye's avatar
yanghye 已提交
38 39 40 41 42 43 44 45 46 47
- [![golcl](https://img.shields.io/badge/Golcl-green)](https://github.com/energye/golcl)
- [![golcl](https://img.shields.io/badge/Liblcl-green)](https://github.com/energye/liblcl)
- [![CEFDelphi](https://img.shields.io/badge/CEFDelphi4-green)](https://github.com/salvadordf/CEF4Delphi)
- [![CEF](https://img.shields.io/badge/CEF(Chromium%20Embedded%20Framework)-green)](https://bitbucket.org/chromiumembedded/cef)

### [Development environment](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/63511b14a749ba0318943f3a)

> Install automatically using the energy command line tool
#### Basic needs
> - golang >= 1.18
yanghye's avatar
yanghye 已提交
48
>
yanghye's avatar
yanghye 已提交
49 50 51 52 53 54
> - energy development environment
> 
> Use the energy command line tool to automatically install the development environment
>
> Get [energy](https://github.com/energye/energy)
> project, or use the precompiled command line tool directly [Download address](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/63511b14a749ba0318943f3a)
yanghye's avatar
yanghye 已提交
55 56
> 1. go get github.com/energye/energy
>
yanghye's avatar
yanghye 已提交
57
> Enter the  [energy](https://github.com/energye/energy) command line directory
yanghye's avatar
yanghye 已提交
58 59
> 2. cd energy/cmd/energy
>
yanghye's avatar
yanghye 已提交
60
> Install command line tools
yanghye's avatar
yanghye 已提交
61 62
> 3. go install
>
yanghye's avatar
yanghye 已提交
63
> Execute the installation command
yanghye's avatar
yanghye 已提交
64
> 4. energy install .
yanghye's avatar
yanghye 已提交
65

yanghye's avatar
yanghye 已提交
66 67 68 69
### Getting Started Guide - [Transfer gate](https://energy.yanghy.cn)

* [course](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/6350f94ca749ba0318943f25)
* [example](https://energy.yanghy.cn/#/example/6342d986401bfe4d0cdf6067/634d3bd5a749ba0318943eb6)
yanghye's avatar
yanghye 已提交
70
* [document](https://energy.yanghy.cn/#/document/6342d9a4401bfe4d0cdf6069/0)
yanghye's avatar
yanghye 已提交
71

yanghye's avatar
yanghye 已提交
72 73
### Quick Get Start
> Use [energy](https://github.com/energye/energy) Command line tool automatic installation environment dependency `energy install .`
yanghye's avatar
yanghye 已提交
74
>
yanghye's avatar
yanghye 已提交
75
> Take example/simple as an example
yanghye's avatar
yanghye 已提交
76
>
yanghye's avatar
yanghye 已提交
77
> Update latest release dependency
yanghye's avatar
yanghye 已提交
78
>
yanghye's avatar
yanghye 已提交
79
> `go mod tidy`
yanghye's avatar
yanghye 已提交
80
>
yanghye's avatar
yanghye 已提交
81 82 83
> Run `simple` in the IDE or `go run simple.go`

### example/simple Code
yanghye's avatar
yanghye 已提交
84 85 86 87 88 89 90 91 92

```go
package main

import (
	"github.com/energye/energy/cef"
)

func main() {
yanghye's avatar
yanghye 已提交
93
	//Global initialization must be called by every application
yanghye's avatar
yanghye 已提交
94
	cef.GlobalInit(nil, nil)
yanghye's avatar
yanghye 已提交
95
	//Create application
yanghye's avatar
yanghye 已提交
96
	cefApp := cef.NewApplication(nil)
yanghye's avatar
yanghye 已提交
97 98 99
	//Set URL
	cef.BrowserWindow.Config.Url = "https://energy.yanghy.cn"
	//Run App
yanghye's avatar
yanghye 已提交
100 101 102
	cef.Run(cefApp)
}
```
yanghye's avatar
yanghye 已提交
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
---

### Pack Project [reference](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/636e397ba749ba01d04ff595)
1. Compile: Go program compilation `go build xxx. go` If you use resource built-in (HTML, CSS, JavaScript, Image, etc.), the resource will be compiled into the execution file
2. Copy: copy the execution file to the CEF directory of the ENERGY environment
3. Packaging: use the installation package tool to make it as an installation package, Or refer to the production of installation package for each system platform
4. Finally: the compiled program or installation package and CEF directory no longer need to configure the environment, and can be run directly in the CEF root directory

#### Go编译命令
1. Compress and hide the cmd window `go build -ldflags "-H windowsgui -s -w"`, Note: Windows needs to hide the CMD window
2. Compress `go build -ldflags "-s -w"`
2. Uncompressed `go build`

---

### System support

![Windows](https://img.shields.io/badge/windows-supported-success.svg?logo=Windows&logoColor=blue)
![MacOSX](https://img.shields.io/badge/MacOSX-supported-success.svg?logo=MacOS)
![Linux](https://img.shields.io/badge/Linux-supported-success.svg?logo=Linux&logoColor=red)


|           | 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               |
| 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                       |
| 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                 |

---

### QQ Group

[![QQGroup](https://img.shields.io/badge/QQ-541258627-green.svg?logo=tencentqq&logoColor=blue)](https://jq.qq.com/?_wv=1027&k=YgFjCGJX)

yanghye's avatar
yanghye 已提交
138
<img src="https://assets.yanghy.cn/energy-doc/qq-group.jpg" width="300">
yanghye's avatar
yanghye 已提交
139 140 141 142
---

### Project screenshot
##### Windows-10
yanghye's avatar
yanghye 已提交
143
<img src="https://assets.yanghy.cn/energy-doc/frameless-windows-10.png" width="600">
yanghye's avatar
yanghye 已提交
144 145

##### Windows-7-32
yanghye's avatar
yanghye 已提交
146
<img src="https://assets.yanghy.cn/energy-doc/frameless-windows-7-32.png" width="600">
yanghye's avatar
yanghye 已提交
147 148

##### Windows-7-64
yanghye's avatar
yanghye 已提交
149
<img src="https://assets.yanghy.cn/energy-doc/frameless-windows-7-64.png" width="600">
yanghye's avatar
yanghye 已提交
150 151

##### Ubuntu-18.04.6
yanghye's avatar
yanghye 已提交
152
<img src="https://assets.yanghy.cn/energy-doc/frameless-ubuntu-18.04.6.png" width="600">
yanghye's avatar
yanghye 已提交
153 154

##### MacOSX
yanghye's avatar
yanghye 已提交
155
<img src="https://assets.yanghy.cn/energy-doc/frameless-macos.png" width="600">
yanghye's avatar
yanghye 已提交
156

yanghye's avatar
yanghye 已提交
157

yanghye's avatar
yanghye 已提交
158
----
yanghye's avatar
yanghye 已提交
159 160 161 162 163 164 165

### Public License

[![license](https://img.shields.io/github/license/energye/energy.svg?logo=git&logoColor=green)](http://www.apache.org/licenses/LICENSE-2.0)