Go bindings for the Chromium Embedded Framework (CEF)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Niklas db4d214aae
fixed language detection
1 year ago
Release added application icon 1 year ago
cef added application icon 1 year ago
examples wooow forgot the source file 1 year ago
handlers added application icon 1 year ago
include init repo 1 year ago
.drone.yml fixed drone branch 1 year ago
.gitattributes fixed language detection 1 year ago
.gitignore added application icon 1 year ago
LICENSE init repo 1 year ago
README.md added droneci 1 year ago
go.mod init repo 1 year ago

README.md

cefgo

Build Status Artifacts

These are simple bindings for CEF C API in Go. It's not documented yet, but you can follow the example to figure out how to use. It's pretty simple.
In order to run the examples, the CEF supporting files must be placed beside the executable.

Features

  • JS to Go callbacks
  • Go to JS eval
  • frameless window
  • single and sub executable support
  • Tested on Windows and Linux (macOS should work using seperate processes)
  • window functions (maximize, minimize, show, always on top, etc)
  • application icon

TODO

  • console output handler

CEF Version and Compatibility

83.3.9+ged43e55+chromium-83.0.4103.61 This lib is compiled against CEF 83.3.9+ged43e55+chromium-83.0.4103.61 / Chromium 83.0.4103.61 from http://opensource.spotify.com/cefbuilds/index.html

Installation

  1. Download the CEF SDK for your system from Spotify.
  2. Locate your installation of cefgo (typically in $GOPATH/src/github.com/Gurkengewuerz/cefgo or $GOPATH/pkg/mod/github.com/Gurkengewuerz/cefgo), and extract the CEF SDK.
    Copy include/* to cefgo/include
    Copy Release/* to cefgo/Release
    Copy Resources/* to cefgo/Release
  3. Run your binaries inside the Release folder

About JS callbacks

Callbacks need to be registered before browsers are created. Currently only basic type conversions are supported (undefined/null, bool, int/uint, double, string). Objects and Arrays are possible, but not done. If you are running in multi-process mode (the default - as opposed to single-process) keep in mind the callback will be executed in the browser process and not in the main process.

Updating the CEF Version

The process for updating CEF to a newer version is relatively simple.

  1. Download a new version from Spotify and extract.
  2. Update the headers inside the include folder
  3. Extract the new cef resources and libs to the Release folder
  4. Try to compile the test application: go clean -cache -testcache && CGO_ENABLED=1 go build -o Release/test.exe examples/main.go
  5. Fix any incompatibilities with new APIs until the application compiles.
  6. Push the new version, and update the version listed in this README.