MCPcopy Index your code
hub / github.com/energye/energy

github.com/energye/energy @v3.0.16

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.0.16 ↗ · + Follow
3,941 symbols 8,986 edges 337 files 1,857 documented · 47%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

3.0 dev

<strong>
    是Go基于 LCL & CEF & Webview2 构建桌面应用的框架
</strong>

中文 | English


go-version github release Build Status repo Go Report Go Reference codecov contributors license


项目简介

energy 是 Go 基于 LCLCEFWebview2Webkit GtkWebkit Apple 开发的框架

LCL - 基础库, 图形用户界面(GUI)组件库, 提供了非常丰富的系统原生控件

CEF - 浏览器组件库 CEF4Delphi, 在LCL基础上封装的CEF3库

Webview2 - 浏览器组件库 WebView4Delphi, 在LCL基础上封装的Webview2库

Webkit - 浏览器组件库, webkit webview, 在LCL基础上封装的Webkit库

使用 Go 和 Web 端技术 ( HTML + CSS + JavaScript ) 构建支持Windows, Linux, MacOS跨平台桌面应用。 将web内容无缝集成到应用程序中,并自定义内容交互以满足应用程序的需求。

构建&使用

LCL 单独使用, 开发原生图形用户界面(GUI)应用. 轻量级, 丰富的系统原生控件

LCL + CEF 混合使用, 开发原生图形用户界面(GUI)和浏览器应用. 重量级, 全量chromium API

LCL + Webview2 混合使用, 开发原生图形用户界面(GUI)和浏览器应用. 轻量级, 全量webview2 API

LCL + Webkit 混合使用, 开发原生图形用户界面(GUI)和浏览器应用. 轻量级, 基础webkit API

特性

  • 具有丰富的浏览器 API 和 LCL 系统原生小部件
  • 开发环境简单,编译速度快,仅需Go和Energy依赖的CEF二进制框架
  • 跨平台: 一套代码可以打包成 Windows, 国产UOS、Deepin、Kylin, MacOS, Linux
    • Golang: 窗口管理、CEF API封装&配置、功能实现、各种UI组件创建、系统低层调用和JavaScript处理不了的功能,如: 文件流、安全加密、高性能处理等
    • Web: HTML + CSS + JavaScript 负责客户端界面的功能, 做出任意你想要的界面
  • 前端技术: 支持主流前端框架。例如:Vue、React、Angular 和 原生HTML+CSS+JS等
  • 事件驱动: 高性能事件驱动, 基于IPC通信,实现Go和Web端迅捷调用及数据交互
  • 资源加载: 可无需http服务支撑,直接读取本地资源或内置到执行文件的资源, 也支持http服务加载资源

内置依赖&集成

  • LCL
  • CEF-CEF4Delphi

开发环境

基本需求

  • Golang >= 1.16
  • Energy 开发环境(CEF, liblcl)

环境安装

  • 自动安装开发环境

使用 energy 命令行工具自动安装完整开发环境 命令行工具下载地址

入门指南 - 传送门

快速入门

使用 energy 命令行工具自动安装完整开发环境

三个步骤运行一个简单应用

  1. 安装开发环境: energy install .
  2. 初始化应用: energy init .
  3. 运行应用: go run main.go

示例代码

main.go

package main

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

func main() {
    //全局初始化
    cef.GlobalInit(nil, nil)
    //创建应用
    app := cef.NewApplication()
    //指定一个URL地址,或本地html文件目录
    cef.BrowserWindow.Config.Url = "https://energy.yanghy.cn"
    //运行应用
    cef.Run(app)
}

应用打包

  1. 编译:energy build .
  2. 打包:energy package .
  3. 自动生成的安装包
  4. windows 使用nsis工具生成exe安装包
  5. linux 使用dpkg制作deb安装包
  6. macos 生成xxx.app

系统支持

Windows MacOS Linux

32位 64位 测试系统版本
Windows Windows Windows Windows XP SP3、 7、10、11
MacOSX MacOSX MacOSX MacOSX 10.15
MacOS M1 M2 MacOS MacOS MacOS M2
Linux Linux Linux Deepin20.8、Ubuntu18.04、LinuxMint21
Linux ARM Linux ARM Linux ARM Kylin-V10-SP1-2107

相关项目


欢迎加入

energy扔处于建设的过程中,有很多的事情无法独自完成,如果有感兴趣的同学想参与energy的实现或学习,可通过微信或QQ联系我。

如果你觉得此项目对你有帮助,请点亮 Star


ENERGY QQ交流群 & 微信

<img src="https://assets.yanghy.cn/qq-group.jpg" width="250" title="QQ交流群: 541258627" alt="QQ交流群: 541258627">
<img src="https://assets.yanghy.cn/we-chat.jpg" width="250" title="微信: sniawmdf" alt="微信: sniawmdf" style="margin-left: 30px;">

鸣谢 Jetbrains

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

项目截图

Windows-10

Windows-7 32 & 64

Windows-XP-SP3

Linux - Deepin

Linux - Kylin ARM

Linux - Ubuntu

MacOSX


开源协议

license

贡献者

Extension points exported contracts — how you extend this code

INSObject (Interface)
(no doc) [12 implementers]
platform/darwin/types/cocoa_interface.go
IStyleProvider (Interface)
(no doc) [12 implementers]
platform/linux/types/gtk3_interface.go
INotification (Interface)
(no doc) [4 implementers]
platform/notification/types/types.go
IXHRProxy (Interface)
IXHRProxy 本地资源加载 XHR 请求代理接口 [1 implementers]
application/local_load_xhr_proxy.go
ICallback (Interface)
(no doc) [3 implementers]
ipc/callback.go
IMessageReceivedDelegate (Interface)
IMessageReceivedDelegate Process message agent processor [1 implementers]
ipc/ipc_handle.go
IMenuEditing (Interface)
(no doc) [2 implementers]
lcl/main_menu_editing.go
Callback (FuncType)
Callback is a function that gets invoked when the notification is activated.
platform/win32/go-toast/wintoast/bind.go

Core symbols most depended-on inside this repo

Send
called by 269
application/local_load_xhr_proxy.go
Instance
called by 126
platform/linux/types/gtk3_interface.go
GoBool
called by 115
platform/linux/gtk3/cgo/gtk_object.go
NewError
called by 111
platform/win32/go-ole/error.go
native
called by 105
platform/linux/gtk3/cgo/gtk_widget.go
SysCall
called by 98
platform/linux/load.go
Instance
called by 94
platform/darwin/types/cocoa_interface.go
ToGoObject
called by 92
platform/linux/gtk3/cgo/gtk_object.go

Shape

Method 2,265
Function 1,190
Struct 308
Interface 68
TypeAlias 62
FuncType 42
Class 6

Languages

Go94%
C++6%
TypeScript1%

Modules by API surface

platform/linux/types/gtk3_interface.go175 symbols
platform/linux/gtk3/cgo/gtk.go.h171 symbols
platform/linux/gtk3/cgo/gtk_widget.go115 symbols
platform/linux/systray/internal/generated/notifier/status_notifier_item.go95 symbols
platform/linux/gtk3/cgo/gtk_window.go92 symbols
platform/linux/gtk3/cgo/gtk_entry.go66 symbols
platform/linux/systray/internal/generated/menu/dbus_menu.go63 symbols
platform/linux/gtk3/cgo/cairo_canvas.go62 symbols
platform/darwin/types/cocoa_interface.go61 symbols
window/window.go58 symbols
lcl/wg/button.go54 symbols
platform/linux/gtk3/cgo/gdk_display.go52 symbols

For agents

$ claude mcp add energy \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact