cztomczak/cef2go logo

cztomczak/cef2go

Free

Go lang bindings for the Chromium Embedded Framework (CEF)

FreeFree tier
Type
Open Source
Founded
2014

About cztomczak/cef2go

CEF2go is an open source project that provides Go language bindings for the Chromium Embedded Framework (CEF). Founded by Czarek Tomczak in 2014 and licensed under BSD 3-clause, it allows developers to embed a full Chromium browser within Go applications. CEF2go can serve as a GUI toolkit for building HTML5-based user interfaces or add browser capabilities to existing applications. The library is cross-platform, supporting Windows, Linux, and macOS, and has been tested with Go 1.2 and 1.3.3. Communication between Go and JavaScript is achieved through an internal HTTP server using XMLHttpRequests. The repository includes binary examples for CEF 3 branch 1750 and provides setup guides for all major platforms.

Key Features

Open source and BSD 3-clause licensed
Cross-platform support: Windows, Linux, macOS
Embeds the Chromium browser in Go applications
Enables HTML5-based GUI without native widgets
Internal HTTP server for communication between Go and JavaScript
Binary examples available for CEF 3 branch 1750
Active community with notable forks adding client handlers and V8 callbacks

Pros & Cons

Pros
  • Open source and free to use
  • Cross-platform support reduces development effort
  • Leverages modern HTML5/Chromium rendering
  • Well-documented with setup guides for all platforms
  • Active forks extend functionality (e.g., client handlers, V8 callbacks)
Cons
  • Bindings are limited to basic window and cache options; advanced features are planned but not yet implemented
  • Go-JS communication requires running an internal HTTP server (not native)
  • Requires downloading and managing CEF binaries
  • Tested only with older Go versions (1.2/1.3.3); compatibility with newer Go versions is uncertain

Best For

Building HTML5-based desktop applications with Go backendEmbedding a full Chromium browser in a Go applicationCreating cross-platform GUIs without platform-specific codeBidirectional communication between Go and JavaScript for interactive apps

FAQ

How can I communicate between Go and JavaScript in CEF2go?
CEF2go uses an internal HTTP server that listens on 127.0.0.1:54007. JavaScript can make XMLHttpRequests to this server to communicate with Go code. An example is provided in http_server_windows.go.
Which platforms does CEF2go support?
CEF2go supports Windows, Linux, and macOS. Windows requires 32-bit Go and MinGW, Linux and macOS have separate setup instructions.
What license does CEF2go use?
CEF2go is licensed under the BSD 3-clause license. See the LICENSE file in the repository for details.