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>
|
|
|
|
Energy is framework for Go to build desktop applications based on CEF
|
|
|
|
</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-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-02-14 20:33:57 +08:00
|
|
|
[![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)
|
|
|
|
---
|
|
|
|
|
|
|
|
### [Project Introduction](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/6350f94ca749ba0318943f25)
|
2023-07-05 17:33:59 +08:00
|
|
|
|
|
|
|
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
|
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
|
2022-10-06 16:39:52 +08:00
|
|
|
>
|
2023-02-17 16:03:28 +08:00
|
|
|
> Knowledge of the front-end technology stack and some knowledge of the Go language is required
|
2023-02-17 14:34:25 +08:00
|
|
|
|
|
|
|
### Characteristic
|
|
|
|
|
2023-07-05 17:33:59 +08:00
|
|
|
> - development environment is simple and the compilation speed is fast. Only the Go development environment and the CEF
|
|
|
|
binary framework that Energy depends on are needed
|
2023-02-17 14:34:25 +08:00
|
|
|
> - cross-platform: A set of code can be packaged into Windows, domestic UOS, Deepin, Kylin, MacOS, Linux
|
|
|
|
> - Language responsibilities
|
2023-07-05 17:33:59 +08:00
|
|
|
>> - Go: Go is responsible for window creation, CEF configuration and function implementation, creation of various UI
|
|
|
|
components, low-level system calls, and functions that JS cannot handle, such as file stream, security encryption,
|
|
|
|
high-performance processing, etc., which can be developed as a pure backend
|
|
|
|
>> - Web: HTML + CSS + JavaScript responsible for the function of the client interface, make any interface you want, can
|
|
|
|
be used as a pure front-end development
|
2023-02-17 14:34:25 +08:00
|
|
|
> - front-end technology: Support mainstream front-end frameworks, such as Vue, React, Angular or pure HTML+CSS
|
2023-07-05 17:33:59 +08:00
|
|
|
> - event driven: High performance event driven, IPC based communication, Go and Web side is very convenient function
|
|
|
|
call and data interaction
|
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
|
|
|
|
|
|
|
### [Development environment](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/63511b14a749ba0318943f3a)
|
|
|
|
|
|
|
|
> Install automatically using the energy command line tool
|
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-02-14 20:33:57 +08:00
|
|
|
> - golang >= 1.18
|
2022-11-28 22:44:13 +08:00
|
|
|
>
|
2023-02-14 20:33:57 +08:00
|
|
|
> - energy development environment
|
2023-07-05 17:33:59 +08:00
|
|
|
>
|
2023-02-14 20:33:57 +08:00
|
|
|
> Use the energy command line tool to automatically install the development environment
|
|
|
|
>
|
2023-07-05 17:33:59 +08:00
|
|
|
> 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)
|
|
|
|
>
|
2023-06-29 16:19:33 +08:00
|
|
|
> <p style="color:palevioletred;">If using pre compiled command-line tools, the following steps can be skipped</p>
|
2023-07-05 17:33:59 +08:00
|
|
|
>
|
2023-07-17 11:18:43 +08:00
|
|
|
> `go get github.com/energye/energy/v2`
|
2022-11-28 22:44:13 +08:00
|
|
|
>
|
2023-02-14 20:33:57 +08:00
|
|
|
> Enter the [energy](https://github.com/energye/energy) command line directory
|
2023-07-05 17:33:59 +08:00
|
|
|
>
|
2023-06-29 16:19:33 +08:00
|
|
|
> `cd energy/cmd/energy`
|
2022-11-28 22:44:13 +08:00
|
|
|
>
|
2023-02-14 20:33:57 +08:00
|
|
|
> Install command line tools
|
2023-07-05 17:33:59 +08:00
|
|
|
>
|
2023-06-29 16:19:33 +08:00
|
|
|
> `go install`
|
2022-11-28 22:44:13 +08:00
|
|
|
>
|
2023-02-14 20:33:57 +08:00
|
|
|
> Execute the installation command
|
2023-07-05 17:33:59 +08:00
|
|
|
>
|
2023-06-29 16:19:33 +08:00
|
|
|
> `energy install .`
|
2022-10-18 15:15:29 +08:00
|
|
|
|
2023-02-14 20:33:57 +08:00
|
|
|
### Getting Started Guide - [Transfer gate](https://energy.yanghy.cn)
|
|
|
|
|
2023-06-29 16:19:33 +08:00
|
|
|
* [Course](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/6350f94ca749ba0318943f25)
|
|
|
|
* [Example](https://energy.yanghy.cn/#/example/6342d986401bfe4d0cdf6067/634d3bd5a749ba0318943eb6)
|
|
|
|
* [Document](https://energy.yanghy.cn/#/document/6342d9a4401bfe4d0cdf6069/0)
|
2022-10-06 16:39:52 +08:00
|
|
|
|
2023-02-14 20:33:57 +08:00
|
|
|
### Quick Get Start
|
2023-07-05 17:33:59 +08:00
|
|
|
|
|
|
|
> Use [energy](https://github.com/energye/energy) Command line tool automatic installation environment
|
|
|
|
> dependency `energy install .`
|
2022-10-06 16:39:52 +08:00
|
|
|
>
|
2023-02-14 20:33:57 +08:00
|
|
|
> Take example/simple as an example
|
2022-10-06 16:39:52 +08:00
|
|
|
>
|
2023-02-14 20:33:57 +08:00
|
|
|
> Update latest release dependency
|
2022-10-06 16:39:52 +08:00
|
|
|
>
|
2023-02-14 20:33:57 +08:00
|
|
|
> `go mod tidy`
|
2022-10-06 16:39:52 +08:00
|
|
|
>
|
2023-02-14 20:33:57 +08:00
|
|
|
> Run `simple` in the IDE or `go run simple.go`
|
|
|
|
|
|
|
|
### example/simple Code
|
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-02-14 20:33:57 +08:00
|
|
|
//Global initialization must be called by every application
|
2023-02-02 19:37:16 +08:00
|
|
|
cef.GlobalInit(nil, nil)
|
2023-02-14 20:33:57 +08:00
|
|
|
//Create application
|
2023-06-01 07:39:32 +08:00
|
|
|
cefApp := cef.NewApplication()
|
2023-02-14 20:33:57 +08:00
|
|
|
//Set URL
|
2023-06-29 16:19:33 +08:00
|
|
|
cef.BrowserWindow.Config.Url = "https://www.yanghy.cn"
|
2023-02-14 20:33:57 +08:00
|
|
|
//Run App
|
2022-10-06 16:39:52 +08:00
|
|
|
cef.Run(cefApp)
|
|
|
|
}
|
|
|
|
```
|
2023-07-05 17:33:59 +08:00
|
|
|
|
2023-02-14 20:33:57 +08:00
|
|
|
---
|
|
|
|
|
2023-06-29 16:19:33 +08:00
|
|
|
### Run app
|
2023-07-05 17:33:59 +08:00
|
|
|
|
2023-06-29 16:19:33 +08:00
|
|
|
- Windows、Linux
|
2023-07-05 17:33:59 +08:00
|
|
|
|
2023-06-29 16:19:33 +08:00
|
|
|
> `go run simple.go`
|
2023-07-05 17:33:59 +08:00
|
|
|
|
2023-06-29 16:19:33 +08:00
|
|
|
- MacOS
|
|
|
|
|
2023-07-05 17:33:59 +08:00
|
|
|
> `go run simple.go energy_env=dev`
|
2023-06-29 16:19:33 +08:00
|
|
|
|
2023-02-14 20:33:57 +08:00
|
|
|
### Pack Project [reference](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/636e397ba749ba01d04ff595)
|
2023-07-05 17:33:59 +08:00
|
|
|
|
|
|
|
1. Compile: Go program compilation `go build simple.go` If you use resource built-in (HTML, CSS, JavaScript, Image,
|
|
|
|
etc.), the resource will be compiled into the execution file
|
2023-02-14 20:33:57 +08:00
|
|
|
2. Copy: copy the execution file to the CEF directory of the ENERGY environment
|
2023-07-05 17:33:59 +08:00
|
|
|
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
|
2023-02-14 20:33:57 +08:00
|
|
|
|
2023-02-14 20:57:32 +08:00
|
|
|
#### Go Compile Command
|
2023-07-05 17:33:59 +08:00
|
|
|
|
2023-06-29 16:19:33 +08:00
|
|
|
- `go build -ldflags "-H windowsgui -s -w"`
|
2023-07-05 17:33:59 +08:00
|
|
|
|
2023-06-29 16:19:33 +08:00
|
|
|
> `-ldflags`
|
|
|
|
>
|
|
|
|
>> `-H windowsgui` optional: windows hide cmd black window
|
|
|
|
>>
|
|
|
|
>> `-w` optional: Removing debugging information can reduce the size of the execution file
|
|
|
|
>>
|
|
|
|
>> `-s` optional: Removing Symbol table information can reduce the size of the execution file
|
|
|
|
|
|
|
|
---
|
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-07-05 17:33:59 +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 |
|
|
|
|
| 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/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-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-06-29 12:33:44 +08:00
|
|
|
Thank please give this project 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)
|
|
|
|
|
|
|
|
|
|
|
|
|