{"id":29551754,"url":"https://github.com/citkane/gtk-browser-widget","last_synced_at":"2026-04-15T07:40:45.173Z","repository":{"id":305027202,"uuid":"1021642426","full_name":"citkane/gtk-browser-widget","owner":"citkane","description":"Gtk Browser Widget (GBW) is a cross platform GTK 4 widget that makes available an embedded browser engine of your choice.","archived":false,"fork":false,"pushed_at":"2025-08-11T20:19:26.000Z","size":147,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-11T20:25:19.756Z","etag":null,"topics":["browser-engine","gtk","gtk4","gtk4-widget","webview2"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/citkane.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-17T17:57:07.000Z","updated_at":"2025-08-11T20:19:29.000Z","dependencies_parsed_at":"2025-07-18T01:16:41.112Z","dependency_job_id":"4f360f6c-b21b-4a2c-9b99-e84ba56114bf","html_url":"https://github.com/citkane/gtk-browser-widget","commit_stats":null,"previous_names":["citkane/gtk-browser-widget"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/citkane/gtk-browser-widget","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/citkane%2Fgtk-browser-widget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/citkane%2Fgtk-browser-widget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/citkane%2Fgtk-browser-widget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/citkane%2Fgtk-browser-widget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/citkane","download_url":"https://codeload.github.com/citkane/gtk-browser-widget/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/citkane%2Fgtk-browser-widget/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31831849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T07:17:56.427Z","status":"ssl_error","status_checked_at":"2026-04-15T07:17:30.007Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-engine","gtk","gtk4","gtk4-widget","webview2"],"created_at":"2025-07-18T05:00:34.680Z","updated_at":"2026-04-15T07:40:45.158Z","avatar_url":"https://github.com/citkane.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e Gtk Browser Widget (GBW) \u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"600\" alt=\"Gtk Browser Widget\" src=\"https://github.com/user-attachments/assets/6933e9b3-8a31-47a9-9b77-c05b70e1e420\" /\u003e\n\u003c/p\u003e\n\n\u003e [!WARNING]\n\u003e **This is pre-ALPHA work in progress software**\n\n\nGBW is a cross-platform [GTK 4](https://www.gtk.org/) widget that makes available an embedded browser engine of your choice:\n- MsWebview2 (ALPHA)\n- Webkit (in progress) - [discussion](https://github.com/citkane/gtk-browser-widget/discussions/4)\n- Chromium (in progress)\n\nGBW is developed with the [gtkmm 4](https://gtkmm.gnome.org/en/) C++  library. More [language bindings](#language-bindings-roadmap) are on the roadmap.\n\n### Minimal usage example (C++):\n```c++\n// gtkmm headers MUST be included first\n#include \u003cgtkmm/applicationwindow.h\u003e\n\n#include \"Gbw_widget.hh\"\n\nclass Application : public Gtk::ApplicationWindow {\npublic:\n  Application() : browser() {\n\n    browser.ready().connect([this] {\n      auto gbw = browser.api().core;\n      gbw-\u003eNavigate(L\"https://www.gtk.org/\");\n    });\n\n    set_title(\"Example GBW application\");\n    set_default_size(1000, 900);\n    set_child(browser);\n  };\nprivate:\n  gbw::Gbw_widget browser;\n};\n\n\n#ifdef _WIN32\nint CALLBACK WinMain(_In_ HINSTANCE /*hInstance*/,\n                     _In_ HINSTANCE /*hPrevInstance*/, _In_ LPSTR /*lpCmdLine*/,\n                     _In_ int /*nCmdShow*/) {\n#else\nint main() {\n#endif\n  auto app = Gtk::Application::create(\"org.gbw.example\");\n  return app-\u003emake_window_and_run\u003cApplication\u003e(0, nullptr);\n};\n```\n\n### Installation\nAt this ALPHA stage, only MsWebview2 for Windows browser engine option is available.\u003cbr\u003e\nYou will need [MSys2](https://www.msys2.org/) installed, and then proceed from a MSys2 UCRT bash terminal:\n```bash\n# Install Msys2 system dependencies\npacman -Suy # Do this twice for a fresh install to update the core\npacman -S mingw-w64-ucrt-x86_64-clang-tools-extra\npacman -S mingw-w64-ucrt-x86_64-cmake\npacman -S mingw-w64-ucrt-x86_64-gtkmm-4.0\npacman -S git\n\n# Clone the GBW repository\ngit clone https://github.com/citkane/gtk-browser-widget.git\ncd gtk-browser-widget\n\n# Use the installer script \nsource installer.sh\n## Answer the prompts to select your build\npackages_install\ngenerate\nbuild\ninstall\nrun\n\n```\n## Example code\n- [MsWebview2](examples/mswebview2)\n- Webkit (todo)\n- Chromium (todo)\n\n## Contributing\nPlease [fork](https://github.com/citkane/gtk-browser-widget/fork) this repository and submit pull requests against the [development branch](https://github.com/citkane/gtk-browser-widget/tree/development).\n\n## Development\nDevelopment notes:\n- [Gtk 4](include#gtk-4)\n- [Operating Systems](include#operating-systems)\n- [Browser Engines](include#browser-engines)\n\nGBW wants to uncomplicate and unboilerplate the embedded browser app development experience. What it does:\n- Starts a browser engine instance,\n- presents a browser window in a new top level `Gtk:Window`\n- [pseudo-embeds](include/core/#gtkwindow-gtkwidget-and-embedding) the window into the `gbw::Gbw_widget` instance,\n- provides to the developer a full API of their chosen web engine\n\nFrom there, it is the developer's prerogative to plumb up their GTK application to the browser API in a way that suits their logic. GBW is not a framework, but rather a simple tool.\n\n## Plugins\nPlugins optionally extend GBW to provide functionallity for common usage patterns.\n\n#### Bind (todo)\nProvides an easy to consume interface that binds native callback functions to browser-side javascript functions.\n\n## Language Bindings (roadmap)\nGBW is developed in C++, but will provide bindings for other GTK supported languages:\n\n- C\n- C# (via Gir.Core)\n- JavaScript\n- Python\n- Perl\n- Rust\n- Vala \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcitkane%2Fgtk-browser-widget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcitkane%2Fgtk-browser-widget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcitkane%2Fgtk-browser-widget/lists"}