提交 5f0cb312 编写于 作者: yanghye's avatar yanghye

License GPL3.0 => Apache License 2.0

上级 e2421a1c
此差异已折叠。
# Energy is Go's framework for building desktop applications based on CEF
[中文 ](README.zh_CN.md) |
# Energy is the framework for Go to build desktop applications based on CEF
[中文](README.zh_CN.md) |
English
---
### [Introduction](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/6350f94ca749ba0318943f25)
> [Energy](https://github.com/energye/energy) Is a framework for building desktop applications using JavaScript,HTML, and CSS based on [Golcl](https://github.com/energye/golcl) and [CEF4Delphi](https://github.com/salvadordf/CEF4Delphi) Pure Go language development framework, embedded [Chromium CEF](https://bitbucket.org/chromiumembedded/cef) binary
[![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
>
> Allows you to use [Web]() front-end technology to build cross-platform applications on Windows, Linux, and MacOS
> Use Go and Web technology (HTML+CSS+JavaScript) to build cross-platform desktop applications that support Windows, Linux and MacOS
>
>> You can use the [Energy](https://github.com/energye/energy) and [Golcl](https://github.com/energye/golcl) to build compact system UI cross-platform application separately
> 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
>
> Supports Windows_32, 64 bits, Linux_x86_64 bits, MacOS_x86_64 bits
>
> In Go and Web technologies, based on IPC communication, you can easily interact data, function calls, and event calls between Go and Web without the need for a Web Service interface, just as easily as calling functions in the language itself
>
> In Go, you can also define JS variables, which can be used by Web end JS to realize Go variable or structure object data synchronization
>
> Call JS function and JS event listener in Go to realize functional interaction between GO and JS
>
> Call Go function in JS, listen to events of Go, and realize functional interaction between JS and GO
### [![windows 32 bits](https://img.shields.io/badge/Downloads-green)](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/6364c5c2a749ba01d04ff485)
### Built-in dependency&integration
#### [Installation Environment](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/63511b14a749ba0318943f3a)
> Install it automatically using the energy command line tool
- [![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
>
> - 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)
> 1. go get github.com/energye/energy
>
> Enter the [energy](https://github.com/energye/energy) command line directory
> 2. cd energy/cmd/energy
>
> Install command line tools
> 3. go install
>
> Execute the installation command
> 4. energy install .
### [Getting started guide](https://energy.yanghy.cn)
* [tutorial](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/6350f94ca749ba0318943f25)
* [sample](https://energy.yanghy.cn/#/example/6342d986401bfe4d0cdf6067/634d3bd5a749ba0318943eb6)
### 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)
* [document](https://energy.yanghy.cn/#/document/6342d9a4401bfe4d0cdf6069/0)
### Quick start
#### Basic needs
> golang >= 1.18
>
> Use the energy command line tool to automatically install environment dependencies 【energy install .】Automatically configure the ENERGY_HOME environment
### Quick Get Start
> Use [energy](https://github.com/energye/energy) Command line tool automatic installation environment dependency `energy install .`
>
> Example/simple example
> Take example/simple as an example
>
> go mod tidy
> Update latest release dependency
>
> IDE run simple
> `go mod tidy`
>
> Currently, the command line tools do not support packaged applications, Windows you can use (MSI or Inno Setup) and other green packaging tools, Deb installation package in Linux, MacOS generates. App packages by default or custom. App packages
> Run `simple` in the IDE or `go run simple.go`
### example/simple Code
##### example/simple code
```go
package main
......@@ -61,17 +90,76 @@ import (
)
func main() {
//Global initialization, which every application must call
//Global initialization must be called by every application
cef.GlobalInit(nil, nil)
//Creating an Application
//Create application
cefApp := cef.NewApplication(nil)
//Specify a URL address, or a local html file directory
cef.BrowserWindow.Config.Url = "https://www.baidu.com"
//Running the Application
//Set URL
cef.BrowserWindow.Config.Url = "https://energy.yanghy.cn"
//Run App
cef.Run(cefApp)
}
```
---
### 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)
<img src="docs/qq-group.jpg" width="300">
---
### Project screenshot
##### Windows-10
<img src="docs/frameless-windows-10.png" width="600">
##### Windows-7-32
<img src="docs/frameless-windows-7-32.png" width="600">
##### Windows-7-64
<img src="docs/frameless-windows-7-64.png" width="600">
##### Ubuntu-18.04.6
<img src="docs/frameless-ubuntu-18.04.6.png" width="600">
##### MacOSX
<img src="docs/frameless-macos.png" width="600">
----
### [License GPL 3.0](https://opensource.org/licenses/GPL-3.0)
### Public License
[![license](https://img.shields.io/github/license/energye/energy.svg?logo=git&logoColor=green)](http://www.apache.org/licenses/LICENSE-2.0)
# Energy 是Go基于CEF的构建桌面应用的框架
# Energy 是Go基于CEF构建桌面应用的框架
中文 |
[English](README.md)
---
### [简介](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/6350f94ca749ba0318943f25)
> [Energy](https://github.com/energye/energy) 使用JavaScript、HTML和CSS 构建桌面应用的框架, 是Golang基于 [CEF4Delphi](https://github.com/salvadordf/CEF4Delphi) 和 [Golcl](https://github.com/energye/golcl) 开发的框架,内嵌 [Chromium CEF](https://bitbucket.org/chromiumembedded/cef) 二进制
[![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)
---
### [项目简介](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/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跨平台桌面应用
>
> 可以让你使用 [Web]() 前端技术构建在Windows, Linux, MacOS跨平台的应用
> 基于Go和CEF跨平台特性
### Go和Web交互
> 在Go和Web技术基于IPC通信,可以在Go和Web交互数据、事件触发, 可以不使用 http 接口,就像调用语言本身函数一样简单
>
> 在Go中定义JS绑定类型变量,提供给Web端JS使用,实现Go变量或结构对象数据同步
>
>> 也可以使用 [Energy](https://github.com/energye/energy) 和 [Golcl](https://github.com/energye/golcl) 单独构建小巧的系统UI跨平台应用程序
> 在JS监听事件,在Go中触发JS事件,以达到Go调用JS函数和传递参数
>
> 支持 Windows_32、64 bits, Linux_x86_64 bits, MacOS_x86_64 bits
> 在Go监听事件,在JS中触发Go事件,以达到JS调用Go函数和传递参数
>
> 在Go和Web端技术中,基于IPC通信,你可以很方便的在Go和Web端交互数据,函数调用以及事件调用, 不需要Web Service接口,就像调用语言本身函数一样简单
>
> 在Go中还可以定义JS变量,提供给Web端JS使用,实现Go变量或结构对象数据同步
>
> 在Go中调用JS函数、JS事件监听,实现GO与JS的功能交互
>
> 在JS中调用Go函数,Go的监听事件,实现JS与GO的功能交互
### [![windows 32 bits](https://img.shields.io/badge/Downloads-green)](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/6364c5c2a749ba01d04ff485)
### 内置依赖&集成
#### [安装环境](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/63511b14a749ba0318943f3a)
> 使用energy命令行工具自动安装
- [![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)
### [开发环境](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/63511b14a749ba0318943f3a)
#### 基本需求
> - golang >= 1.18
>
> - energy 开发环境
>
> 使用 energy 命令行工具自动安装开发环境
>
> 获取 [energy](https://github.com/energye/energy)
> 项目,或直接使用预编译命令行工具 [下载地址](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/63511b14a749ba0318943f3a)
> 1. go get github.com/energye/energy
>
> 进入 [energy](https://github.com/energye/energy) 命令行目录
> 2. cd energy/cmd/energy
>
> 安装命令行工具
> 3. go install
>
> 执行安装命令
> 4. energy install .
### [入门指南-网址](https://energy.yanghy.cn)
### 入门指南 - [传送门](https://energy.yanghy.cn)
* [教程](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/6350f94ca749ba0318943f25)
* [示例](https://energy.yanghy.cn/#/example/6342d986401bfe4d0cdf6067/634d3bd5a749ba0318943eb6)
* [文档](https://energy.yanghy.cn/#/document/6342d9a4401bfe4d0cdf6069/0)
### 快速入门
#### 基本需求
> golang >= 1.18
>
> 使用energy命令行工具自动安装环境依赖 【energy install .】自动配置好ENERGY_HOME环境
> 使用 [energy](https://github.com/energye/energy) 命令行工具自动安装环境依赖 `energy install .`
>
> 以example/simple示例为例
>
> go mod tidy
> 更新最新发布版本依赖
>
> 在IDE中运行simple
> 2. go mod tidy
>
> 目前命令行工具不支持打包应用程序, windows你可以使用(MSI或Inno Setup)和其它绿色打包工具, linux下deb安装包等, MacOS默认开发时会生成.app包或者自行定制.app包
> 在IDE中运行simple 或 go run simple.go
### example/simple 示例代码
##### example/simple 示例代码
```go
package main
......@@ -71,6 +102,66 @@ func main() {
cef.Run(cefApp)
}
```
---
### 项目打包 [参考](https://energy.yanghy.cn/#/course/6342d92c401bfe4d0cdf6065/636e397ba749ba01d04ff595)
1. 编译:Go 程序编译`go build xxx.go` 如果使用资源内置(HTML、CSS、JavaScript、Image等等)会把资源编译到执行文件内
2. 复制:把执行文件复制到ENERGY环境的CEF目录中即可
3. 打包:使用制作安装包工具将其制作为安装包, 查阅各系统平台安装包制作
4. 最后:编译后的程序或安装包和CEF目录不再需要配置环境,在CEF根目录可直接运行
#### Go编译命令
1. 压缩并隐藏cmd窗口 `go build -ldflags "-H windowsgui -s -w"`, 注意: windows需要隐藏CMD窗口
2. 会压缩 不隐藏cmd窗口 `go build -ldflags "-s -w"`
2. 不压缩 不隐藏cmd窗口 `go build`
---
### 系统支持
![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位 | 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 |
| 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/自编译-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 |
---
### QQ交流群
[![QQGroup](https://img.shields.io/badge/QQ-541258627-green.svg?logo=tencentqq&logoColor=blue)](https://jq.qq.com/?_wv=1027&k=YgFjCGJX)
<img src="docs/qq-group.jpg" width="300">
---
### 项目截图
##### Windows-10
<img src="docs/frameless-windows-10.png" width="600">
##### Windows-7-32
<img src="docs/frameless-windows-7-32.png" width="600">
##### Windows-7-64
<img src="docs/frameless-windows-7-64.png" width="600">
##### Ubuntu-18.04.6
<img src="docs/frameless-ubuntu-18.04.6.png" width="600">
##### MacOSX
<img src="docs/frameless-macos.png" width="600">
----
### [License GPL 3.0](https://opensource.org/licenses/GPL-3.0)
### 开源协议
[![license](https://img.shields.io/github/license/energye/energy.svg?logo=git&logoColor=green)](http://www.apache.org/licenses/LICENSE-2.0)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册