{"id":17021338,"url":"https://github.com/uliwitness/ukfilewatcher","last_synced_at":"2025-04-12T10:13:08.131Z","repository":{"id":14373312,"uuid":"17083311","full_name":"uliwitness/UKFileWatcher","owner":"uliwitness","description":"A bunch of classes for detecting changes of files and folders. Extracted from UliKit. Home of UKKQueue.","archived":false,"fork":false,"pushed_at":"2019-07-23T15:02:32.000Z","size":61,"stargazers_count":15,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T10:12:59.958Z","etag":null,"topics":["change-notifications","kqueue","objective-c","uli-kit"],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uliwitness.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-02-22T11:15:00.000Z","updated_at":"2020-07-21T03:21:54.000Z","dependencies_parsed_at":"2022-08-19T19:30:44.127Z","dependency_job_id":null,"html_url":"https://github.com/uliwitness/UKFileWatcher","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uliwitness%2FUKFileWatcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uliwitness%2FUKFileWatcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uliwitness%2FUKFileWatcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uliwitness%2FUKFileWatcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uliwitness","download_url":"https://codeload.github.com/uliwitness/UKFileWatcher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248550633,"owners_count":21122934,"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":["change-notifications","kqueue","objective-c","uli-kit"],"created_at":"2024-10-14T07:07:26.177Z","updated_at":"2025-04-12T10:13:08.085Z","avatar_url":"https://github.com/uliwitness.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"What is it\n----------\n\nA collection of interchangeable classes that notify you when a given file or folder\nchanges. You can register for notifications, or register as a delegate.\n\n\nWhat is what\n------------\n\nUKKQueue - Uses the Unix kqueue mechanism in the background. This gives the most immediate\nchange notifications, whether your application is in the foreground or background.\nHowever, it also is the most low-level and requires your application to be running or it\nwill miss changes. Also, as safe-saves in modern Cocoa apps generally work by writing\nto a new file, then deleting the old file and giving the new one the original's name, it\nmay report files as deleted that have just been saved, forcing you to unregister and\nre-register for change notifications.\n\nUKFSEventsWatcher - Uses FSEvents under the hood. This is the same mechanism as Spotlight\nand Time Machine use. It can remember changes across restarts, but will sometimes report\na large number of changes in the same folder as a vague \"something in this folder\nchanged\". It is geared towards watching when folder contents change, but that luckily\nincludes changes to those files' contents.\n\nUKFNSubscribeFileWatcher - This is the mechanism the Finder used for a long time. It is\nthe least resource-intensive as it coalesces updates that happen while your application is\nin the background, or repeated updates to the same file. It was deprecated in Mac OS X\n10.8. \n\nUKFileWatcher - A protocol that all the above classes conform to, allowing you to try\neach of them out easily and pick the one you like most.\n\n\nLicense\n-------\n\n\tCopyright 2003-2014 by Uli Kusterer.\n\t\n\tThis software is provided 'as-is', without any express or implied\n\twarranty. In no event will the authors be held liable for any damages\n\tarising from the use of this software.\n\t\n\tPermission is granted to anyone to use this software for any purpose,\n\tincluding commercial applications, and to alter it and redistribute it\n\tfreely, subject to the following restrictions:\n\t\n\t   1. The origin of this software must not be misrepresented; you must not\n\t   claim that you wrote the original software. If you use this software\n\t   in a product, an acknowledgment in the product documentation would be\n\t   appreciated but is not required.\n\t\n\t   2. Altered source versions must be plainly marked as such, and must not be\n\t   misrepresented as being the original software.\n\t\n\t   3. This notice may not be removed or altered from any source\n\t   distribution.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuliwitness%2Fukfilewatcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuliwitness%2Fukfilewatcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuliwitness%2Fukfilewatcher/lists"}