README.md 7.8 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
[![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)
![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 已提交
19
>
yanghye's avatar
yanghye 已提交
20
> Use Go and Web technology (HTML+CSS+JavaScript) to build cross-platform desktop applications that support Windows, Linux and MacOS
yanghye's avatar
yanghye 已提交
21
>
yanghye's avatar
yanghye 已提交
22 23 24 25 26 27 28 29 30 31 32
> 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 已提交
33
>
yanghye's avatar
readme  
yanghye 已提交
34

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

yanghye's avatar
yanghye 已提交
37 38 39 40 41 42 43 44 45 46
- [![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 已提交
47
>
yanghye's avatar
yanghye 已提交
48 49 50 51 52 53
> - 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 已提交
54 55
> 1. go get github.com/energye/energy
>
yanghye's avatar
yanghye 已提交
56
> Enter the  [energy](https://github.com/energye/energy) command line directory
yanghye's avatar
yanghye 已提交
57 58
> 2. cd energy/cmd/energy
>
yanghye's avatar
yanghye 已提交
59
> Install command line tools
yanghye's avatar
yanghye 已提交
60 61
> 3. go install
>
yanghye's avatar
yanghye 已提交
62
> Execute the installation command
yanghye's avatar
yanghye 已提交
63
> 4. energy install .
yanghye's avatar
yanghye 已提交
64

yanghye's avatar
yanghye 已提交
65 66 67 68
### 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 已提交
69
* [document](https://energy.yanghy.cn/#/document/6342d9a4401bfe4d0cdf6069/0)
yanghye's avatar
yanghye 已提交
70

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

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

```go
package main

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

func main() {
yanghye's avatar
yanghye 已提交
92
	//Global initialization must be called by every application
yanghye's avatar
yanghye 已提交
93
	cef.GlobalInit(nil, nil)
yanghye's avatar
yanghye 已提交
94
	//Create application
yanghye's avatar
yanghye 已提交
95
	cefApp := cef.NewApplication(nil)
yanghye's avatar
yanghye 已提交
96 97 98
	//Set URL
	cef.BrowserWindow.Config.Url = "https://energy.yanghy.cn"
	//Run App
yanghye's avatar
yanghye 已提交
99 100 101
	cef.Run(cefApp)
}
```
yanghye's avatar
yanghye 已提交
102 103 104 105 106 107 108 109
---

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

yanghye's avatar
yanghye 已提交
110
#### Go Compile Command
yanghye's avatar
yanghye 已提交
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
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 已提交
137
<img src="https://assets.yanghy.cn/energy-doc/qq-group.jpg" width="300">
yanghye's avatar
yanghye 已提交
138

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)