{"id":13419948,"url":"https://github.com/cztomczak/cef2go","last_synced_at":"2025-12-18T03:06:30.767Z","repository":{"id":12543764,"uuid":"15213861","full_name":"cztomczak/cef2go","owner":"cztomczak","description":"Go lang bindings for the Chromium Embedded Framework (CEF)","archived":false,"fork":false,"pushed_at":"2020-12-12T03:01:47.000Z","size":227,"stargazers_count":902,"open_issues_count":20,"forks_count":128,"subscribers_count":51,"default_branch":"master","last_synced_at":"2025-09-28T09:04:24.098Z","etag":null,"topics":["browser","cef","chrome","chromium","cross-platform-gui","golang","gui-toolkit"],"latest_commit_sha":null,"homepage":"https://groups.google.com/d/forum/cef2go","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cztomczak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=9CAMRSA48UVT8"]}},"created_at":"2013-12-16T00:39:20.000Z","updated_at":"2025-09-25T05:35:21.000Z","dependencies_parsed_at":"2022-07-15T11:30:34.428Z","dependency_job_id":null,"html_url":"https://github.com/cztomczak/cef2go","commit_stats":null,"previous_names":["czarektomczak/cef2go"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/cztomczak/cef2go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cztomczak%2Fcef2go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cztomczak%2Fcef2go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cztomczak%2Fcef2go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cztomczak%2Fcef2go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cztomczak","download_url":"https://codeload.github.com/cztomczak/cef2go/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cztomczak%2Fcef2go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27790128,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-18T02:00:09.725Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser","cef","chrome","chromium","cross-platform-gui","golang","gui-toolkit"],"created_at":"2024-07-30T22:01:23.309Z","updated_at":"2025-12-18T03:06:30.730Z","avatar_url":"https://github.com/cztomczak.png","language":"C","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=9CAMRSA48UVT8"],"categories":["C","TODO scan for Android support in followings"],"sub_categories":[],"readme":"CEF2go\r\n======\r\n\r\nTable of contents:\r\n * [Introduction](#introduction)\r\n * [Compatibility](#compatibility)\r\n * [Binary examples](#binary-examples)\r\n * [Help](#help)\r\n * [Support Development](#support-development)\r\n * [Forks worth a look](#forks-worth-a-look)\r\n * [Communication between Go and Javascript](#communication-between-go-and-javascript)\r\n * [Getting started on Windows](#getting-started-on-windows)\r\n * [Getting started on Linux](#getting-started-on-linux)\r\n * [Getting started on Mac OS X](#getting-started-on-mac-os-x)\r\n * [Built a cool app?](#built-a-cool-app)\r\n * [Familiar with Python or PHP?](#familiar-with-python-or-php)\r\n\r\n\r\nIntroduction\r\n------------\r\n\r\nCEF2go is an open source project founded by [Czarek Tomczak](https://www.linkedin.com/in/czarektomczak/)\r\nin 2014 to provide Go bindings for the [Chromium Embedded Framework](https://bitbucket.org/chromiumembedded/cef) (CEF).\r\nCEF2go can act as a GUI toolkit, allowing you to create an HTML 5\r\nbased GUI in your application. Or you can provide browser\r\ncapabilities to your application.\r\n\r\nCurrently the CEF2go example creates just a simple window with\r\nthe Chromium browser embedded. You can set a few options for\r\nyour application like the cache directory. More advanced bindings\r\nare in plans, and that includes javascript bindings and callbacks, so\r\nthat you can have bidirectional communication between Go and\r\nJavascript in a native way. Though, it is already possible to\r\ncommunicate with Go from Javascript, see the \"Communication \r\nbetween Go and Javascript\" section further down this page.\r\n\r\nCEF2go is licensed under the BSD 3-clause license, see the LICENSE\r\nfile.\r\n\r\n\r\nCompatibility\r\n-------------\r\nSupported platforms: Windows, Linux, Mac OSX.\r\n\r\nCEF2go was tested and works fine with Go 1.2 / Go 1.3.3.\r\n\r\n\r\nBinary examples\r\n---------------\r\nThe binary examples provided here use CEF 3 branch 1750 (Chrome 33\r\nbeta channel as of build time).\r\n\r\nWindows example: [releases/tag/v0.10](https://github.com/CzarekTomczak/cef2go/releases/tag/v0.10)  \r\n\r\nLinux example: [releases/tag/v0.11](https://github.com/CzarekTomczak/cef2go/releases/tag/v0.11)  \r\n\r\nMac OSX example: [releases/tag/v0.12](https://github.com/CzarekTomczak/cef2go/releases/tag/v0.12)\r\n\r\n\r\nHelp\r\n----\r\nHaving problems or questions? Go to the [CEF2go Forum](http://groups.google.com/group/cef2go). Please do not use Issue \r\nTracker for asking questions.\r\n\r\nSee the auto generated docs for the following packages:\r\n * [cef](https://godoc.org/github.com/CzarekTomczak/cef2go/src/cef)\r\n * [cocoa](https://godoc.org/github.com/CzarekTomczak/cef2go/src/cocoa)\r\n * [gtk](https://godoc.org/github.com/CzarekTomczak/cef2go/src/gtk)\r\n * [wingui](https://godoc.org/github.com/CzarekTomczak/cef2go/src/wingui)\r\n\r\n\r\nSupport development\r\n-------------------\r\n\r\nBoth code contributions and Paypal donations are welcome.\r\n[![Donate through Paypal](https://raw.githubusercontent.com/CzarekTomczak/cef2go/master/donate.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=9CAMRSA48UVT8)\r\n\r\nThanks to those who have made a Paypal donation:\r\n- David Witten\r\n\r\n\r\nForks worth a look\r\n------------------\r\n * [fromkeith/cef2go](https://github.com/fromkeith/cef2go)\r\n    * Adds support for client handlers (eg. Display, LifeSpan, Request,\r\n    Resource, Scheme, Download).\r\n    * Exposes new objects (eg. Browser, Frame, Request, Response). \r\n    * Tested only on Windows.\r\n * [paperlesspost/cef2go](https://github.com/paperlesspost/cef2go)\r\n    * Adds suport for a few client handlers including Render handler\r\n    (off-screen rendering to a raw pixel buffer). \r\n    * Implements V8 callbacks for native communication from Javascript\r\n    to Go.\r\n    * Tested only on Linux.\r\n\r\n\r\nCommunication between Go and Javascript\r\n---------------------------------------\r\nFor now to make communication between Go and javascript possible\r\nyou have to run an internal http server and communicate using \r\nXMLHttpRequests in javascript. See the [http_server_windows.go](https://github.com/CzarekTomczak/cef2go/blob/master/src/http_server_windows.go)\r\nexample that embeds both a http server and a Chromium browser\r\nin a standalone application. To run it type \"build.bat http_server\". \r\nThe http server is listening at 127.0.0.1:54007, thus it is not \r\naccessible from the outside, it can be accessed only from the \r\nmachine it is running on.\r\n\r\n\r\nGetting started on Windows\r\n--------------------------\r\n1. Install Go 32-bit. CEF 64-bit binaries are still experimental and\r\n   were not tested.\r\n\r\n2. Install mingw 32-bit and add C:\\MinGW\\bin to PATH. You can install mingw\r\n   using [mingw-get-setup.exe](http://sourceforge.net/projects/mingw/files/Installer/).\r\n   Select packages to install: \"mingw-developer-toolkit\",\r\n   \"mingw32-base\", \"msys-base\". CEF2go was tested and works fine\r\n   with GCC 4.8.2. You can check gcc version with \"gcc --version\".\r\n\r\n3. Download CEF 3 branch 1750 revision 1590 binaries:\r\n   [cef_binary_3.1750.1590_windows32.7z](https://github.com/CzarekTomczak/cef2go/releases/download/cef3-b1750-r1590/cef_binary_3.1750.1590_windows32.7z)  \r\n   Copy Release/* to cef2go/Release  \r\n   Copy Resources/* to cef2go/Release  \r\n\r\n4. Run build.bat (or \"build.bat noconsole\" to get rid of the console\r\n    window when running the final executable)\r\n\r\n\r\nGetting started on Linux\r\n------------------------\r\n1. These instructions work fine with Ubuntu 12.04 64-bit. \r\n   On Ubuntu 13/14 libudev.so.0 is missing and it is required to \r\n   create a symbolic link to libudev.so.1. For example on \r\n   Ubuntu 14.04 64-bit run this command: \r\n  `cd /lib/x86_64-linux-gnu/ \u0026\u0026 sudo ln -sf libudev.so.1 libudev.so.0`.\r\n\r\n2. Install CEF dependencies:  \r\n   `sudo apt-get install build-essential libgtk2.0-dev libgtkglext1-dev`\r\n\r\n3. Download CEF 3 branch 1750 revision 1604 binaries:\r\n   [cef_binary_notcmalloc_3.1750.1604_linux64.zip](https://github.com/CzarekTomczak/cef2go/releases/download/cef3-b1750-r1604/cef_binary_notcmalloc_3.1750.1604_linux64.zip)  \r\n   Copy Release/* to cef2go/Release\r\n\r\n4. Run \"make\" command.\r\n\r\n\r\nGetting started on Mac OS X\r\n---------------------------\r\n1. These instructions work fine with OS X 10.8 Mountain Lion.\r\n   May also work with other versions, but were not tested.\r\n\r\n2. Install Go 32-bit. Tested with Go 1.2-386 for OSX 10.8.\r\n   CEF binaries for OSX 64-bit are still experimental, that's\r\n   why we're using 32-bit. Though you can try building with\r\n   CEF 64-bit, download binaries from [cefbuilds.com](http://cefbuilds.com).\r\n\r\n3. Install command line tools (make is required) from:  \r\n   https://developer.apple.com/downloads/  \r\n   (In my case command line tools for Mountain Lion from September 2013)\r\n\r\n4. Install XCode (gcc that comes with XCode is required). \r\n   Use the link above. In my case it was XCode 4.6.3 from June 2013.\r\n\r\n5. Download CEF 3 branch 1750 revision 1625 binaries for 32-bit:\r\n   [releases/tag/v0.12](https://github.com/CzarekTomczak/cef2go/releases/tag/v0.12)  \r\n   Copy the cef2go.app directory to cef2go/Release.\r\n\r\n6. Run \"make\" command.\r\n\r\n\r\nBuilt a cool app?\r\n-----------------\r\nBuilt a cool app using CEF2go and would like to share info with\r\nthe community? Talk about it on the [CEF2go Forum](http://groups.google.com/group/cef2go).\r\n\r\n\r\nFamiliar with Python or PHP?\r\n----------------------------\r\nThe author of CEF2go is also working on CEF bindings\r\nfor other languages. For Python see the [CEF Python](https://code.google.com/p/cefpython/) project. For PHP see the \r\n[PHP Desktop](https://code.google.com/p/phpdesktop/) project.\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcztomczak%2Fcef2go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcztomczak%2Fcef2go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcztomczak%2Fcef2go/lists"}