{"id":15873805,"url":"https://github.com/phronmophobic/clj-cef2","last_synced_at":"2025-08-21T02:08:19.602Z","repository":{"id":205652418,"uuid":"714377451","full_name":"phronmophobic/clj-cef2","owner":"phronmophobic","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-01T18:50:45.000Z","size":5241,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-15T00:46:50.990Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phronmophobic.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2023-11-04T18:17:14.000Z","updated_at":"2025-06-01T18:50:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"daed0d51-c988-4936-ac16-8172aabe646e","html_url":"https://github.com/phronmophobic/clj-cef2","commit_stats":{"total_commits":205,"total_committers":1,"mean_commits":205.0,"dds":0.0,"last_synced_commit":"0f873b43c5b44902833108bd436b5b0061b5cf93"},"previous_names":["phronmophobic/clj-cef2"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/phronmophobic/clj-cef2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phronmophobic%2Fclj-cef2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phronmophobic%2Fclj-cef2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phronmophobic%2Fclj-cef2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phronmophobic%2Fclj-cef2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phronmophobic","download_url":"https://codeload.github.com/phronmophobic/clj-cef2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phronmophobic%2Fclj-cef2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271415496,"owners_count":24755639,"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-08-21T02:00:08.990Z","response_time":74,"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":[],"created_at":"2024-10-06T01:06:54.399Z","updated_at":"2025-08-21T02:08:19.575Z","avatar_url":"https://github.com/phronmophobic.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# clj-cef\n\nClojure bindings for the Chromium Embedded Framework\n\n\n## Rationale\n\n\nFrom \u003chttps://bitbucket.org/chromiumembedded/cef/src/master/\u003e\n\n\u003e Some use cases for CEF include:\n\u003e \n\u003e- Embedding an HTML5-compliant Web browser control in an existing native application.\n\u003e- Creating a light-weight native “shell” application that hosts a user interface developed primarily using Web technologies.\n\u003e- Rendering Web content “off-screen” in applications that have their own custom drawing frameworks.\n\u003e- Acting as a host for automated testing of existing Web properties and applications.\n\nThe purpose of clj-cef is to make all of these features available from clojure. The current priority is to expose as much cef functionality as possible. As such, the current API tries to match the underlying cef c api as closely as possible. Future versions or projects may provide more idiomatic clojure wrapping.\n\n\nCurrently, clj-cef will run on Mac OSX and linux.\n\n## Threading\n\nIn general, most cef functions expect to be called on **the** main thread unless otherwise documented. On Mac OSX, the main thread is a very specific thread. If cef functions are called on the wrong thread, it will crash the jvm.\n\nTasks can be run on the main thread using `com.phronemophobic.cinterop/dispatch-sync` or `com.phronemophobic.cinterop/dispatch-async`.\n\n```clojure\n\n(require '[com.phronemophobic.cinterop\n           :refer [dispatch-sync\n                   dispatch-async]])\n\n;; synchronous. will return when the task completes\n(dispatch-sync\n (fn []\n   (cef/prepare-environment!)))\n\n;; asynchronous. will return immediately\n(dispatch-async\n (fn []\n   (cef/prepare-environment!)))\n```\n\n## Linux Dependencies\n\n```sh\napt install xvfb libatk1.0-dev libatk-bridge2.0-dev libxkbcommon-dev libxcomposite-dev libxrandr-dev libgbm-dev libxdamage-dev\n```\n\nWhen running cef on linux without a display, use xvfb. The easiest way to use xvfb is to prefix command line commands with `xvfb-run`. See https://magpcss.org/ceforum/viewtopic.php?t=16993 for more information. \n\n\n# License\n\nCopyright 2021 Adrian Smith. clj-cef is licensed under Apache License v2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphronmophobic%2Fclj-cef2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphronmophobic%2Fclj-cef2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphronmophobic%2Fclj-cef2/lists"}