{"id":13760437,"url":"https://github.com/nextjournal/beholder","last_synced_at":"2025-12-12T01:15:06.900Z","repository":{"id":51110201,"uuid":"348646591","full_name":"nextjournal/beholder","owner":"nextjournal","description":"The Clojure directory watcher from Krell as a standalone library.","archived":false,"fork":false,"pushed_at":"2024-02-04T22:56:28.000Z","size":22,"stargazers_count":118,"open_issues_count":6,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-29T02:09:14.834Z","etag":null,"topics":["clojure","directory-watcher"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nextjournal.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}},"created_at":"2021-03-17T09:15:30.000Z","updated_at":"2024-10-21T12:27:34.000Z","dependencies_parsed_at":"2024-08-03T13:14:55.099Z","dependency_job_id":null,"html_url":"https://github.com/nextjournal/beholder","commit_stats":{"total_commits":17,"total_committers":4,"mean_commits":4.25,"dds":"0.23529411764705888","last_synced_commit":"e74afd17080d2987cf99039dec881cf58ab512b5"},"previous_names":["nextjournal/directory-watcher"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nextjournal%2Fbeholder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nextjournal%2Fbeholder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nextjournal%2Fbeholder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nextjournal%2Fbeholder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nextjournal","download_url":"https://codeload.github.com/nextjournal/beholder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280272,"owners_count":20912967,"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","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":["clojure","directory-watcher"],"created_at":"2024-08-03T13:01:10.224Z","updated_at":"2025-12-12T01:15:01.866Z","avatar_url":"https://github.com/nextjournal.png","language":"Clojure","funding_links":[],"categories":["Clojure"],"sub_categories":[],"readme":"# Beholder\n\n[![Clojars Project](https://img.shields.io/clojars/v/com.nextjournal/beholder.svg)](https://clojars.org/com.nextjournal/beholder)\n\nThe Clojure directory watcher from\n[krell](https://github.com/vouch-opensource/krell/) as a standalone\nlibrary.\n\n![Beholder Logo](https://cdn.nextjournal.com/data/QmWMRZdwLqn9Ynt8JAxvNF9eWi3HF4c3UcT9vSXVSBS7Wi?filename=beholder.jpg\u0026content-type=image/jpeg)\n\nBuilt using the Java library\n[directory-watcher](https://github.com/gmethvin/directory-watcher).\nFrom its README:\n\n\u003e A directory watcher utility for JDK 8+ that aims to provide accurate\n\u003e and efficient recursive watching for Linux, macOS and Windows. In\n\u003e particular, this library provides a JNA-based WatchService for Mac\n\u003e OS X to replace the default polling-based JDK implementation.\n\u003e\n\u003e The core directory-watcher library is designed to have minimal\n\u003e dependencies; currently it only depends on slf4j-api (for internal\n\u003e logging, which can be disabled by passing a NOPLogger in the\n\u003e builder) and jna (for the macOS watcher implementation).\n\nInitial development by [David Nolen](https://github.com/swannodette).\n\n## Usage\nPass a callback function and paths to `watch`.\n\n```clojure\n(require '[nextjournal.beholder :as beholder])\n(def watcher\n  (beholder/watch prn \"src\"))\n\n(beholder/stop watcher)\n```\n\nWhenever a file changes, your callback function will be invoked with a\nmap with `:type` and `:path` keys. Possible values for `:type` are\n`:create`, `:modify`, `:delete` or `:overflow`.\n\n## License\n\nCopyright © 2021 Nextjournal\n\nDistributed under the EPL-1.0 License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnextjournal%2Fbeholder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnextjournal%2Fbeholder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnextjournal%2Fbeholder/lists"}