energy

module
v2.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 2, 2025 License: Apache-2.0

README

Energy is a GUI framework developed by Go, based on LCL and CEF

中文 | English


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

Project Introduction

  • Energy is a GUI framework developed in Go, based on LCL and CEF(Chromium Embedded Framework), which is used to develop cross-platform desktop applications for Windows, MacOS, and Linux.
  • LCL alone can create lightweight native applications, or can be combined with CEF to create more feature-complete applications.
  • Construct cross-platform desktop applications that support Windows, Linux, and MacOS using Go and web technologies (HTML + CSS + JavaScript).

Characteristic

  • Rich CEF API and LCL system native widgets
  • Development environment is simple and the compilation speed is fast. Only need Go and Energy.
  • Cross-Platform: You can package your code as Windows, domestic UOS, Deepin, Kylin, MacOS and Linux
  • Responsibilities
    • Go: Go is responsible for creating Windows, configuring CEF and implementing functions, creating various UI components, calling the low level of the system and some functions that JS cannot handle, such as: file flow, security encryption, high-performance processing, etc.
    • Web: HTML + CSS + JavaScript is responsible for the function of the client interface, you can make any interface you want.
  • Front-end technology: Support mainstream frameworks, such as Vue, React, Angular or pure HTML+CSS+JS.
  • Event driven: High performance event driven communication based on IPC allowing intercommunication between Go and Web.
  • Resource loading: You can either read local resources or resources built into execution files either with or without HTTP services.

Built-in dependency&integration

  • LCL
  • CEF-CEF4Delphi

Development Environment

Basic needs
  • Golang >= 1.18
  • Energy (CEF, liblcl)
Environmental installation

Automatic installation development environment using the energy command-line tool

Quick Start

Run a simple application by three steps

  1. Install development environment: energy install
  2. Initiate an Application: energy init
  3. Run the Application: go run main.go

sample code

main.go

package main

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

func main() {
     //Global initialization
     cef.GlobalInit(nil, nil)
     //Create an application
     app := cef.NewApplication()
     //Specify a URL address or local HTML file directory
     cef.BrowserWindow.Config.Url = "https://energye.github.io"
     //Run Application
     cef.Run(app)
}

Build

  1. Build:energy build
  2. Package:energy package
  3. Package Type:
    • windows: Using nsis create exe installation package
    • linux: Using dpkg create deb installation package
    • macos: Generate xxx.app

System support

Windows MacOS Linux

OS 32-bit 64-bit
Windows ️✔️ ️✔️
MacOSX (Intel) ️✔️
MacOS (Apple Silicon) ️✔️
Linux ️✔️ ️✔️
Linux ARM ️✔️ ️✔️

Other Projects


ENERGY QQ Group & WeChat

Innovative functions break through difficulties. Light up the star and strive forward together!



Thanks Jetbrains

JetBrains Logo (Main) logo.


Project screenshot

Windows-10
Windows-7 32 & 64
Windows-XP-SP3
Linux - Deepin
Linux - Kylin ARM
Linux - Ubuntu
MacOSX

Public License

license

Contributors

Directories

Path Synopsis
cef
Package cef All CEF implementations of Energy in Go
Package cef All CEF implementations of Energy in Go
exception
Package exception
Package exception
i18n
Package i18n Multilingual resources
Package i18n Multilingual resources
internal/assets
Package assets energy internal assets
Package assets energy internal assets
internal/exception
Package exception
Package exception
ipc
process
Package process Current process
Package process Current process
winapi
Package winapi energy - lcl window api
Package winapi energy - lcl window api
Package common CEF Util
Package common CEF Util
imports
Package imports Dynamic Library Import Based on LCL You can also import and add custom dynamic libraries here
Package imports Dynamic Library Import Based on LCL You can also import and add custom dynamic libraries here
Package consts CEF const
Package consts CEF const
examples
dll
gpu
vue
Package logger Simple log output
Package logger Simple log output
pkgs
decimal
Package decimal implements an arbitrary precision fixed-point decimal.
Package decimal implements an arbitrary precision fixed-point decimal.
ext
notice
notice is a cross-platform system notification library notice 是一个跨平台的系统通知库
notice is a cross-platform system notification library notice 是一个跨平台的系统通知库
systray
Package systray is a cross-platform Go library to place an icon and menu in the notification area.
Package systray is a cross-platform Go library to place an icon and menu in the notification area.
systray/internal/generated/menu
Code generated by dbus-codegen-go DO NOT EDIT.
Code generated by dbus-codegen-go DO NOT EDIT.
systray/internal/generated/notifier
Code generated by dbus-codegen-go DO NOT EDIT.
Code generated by dbus-codegen-go DO NOT EDIT.
Package types CEF & Go type mapping
Package types CEF & Go type mapping

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL