Description
It's possible to use FSEvents directly in Swift, but it still involves
many boilerplate works and subtle conversions.
This library provides mostly-faithful wrapper around FSEvents feature tailored
for Swift 5.
EonilFSEvents alternatives and similar libraries
Based on the "Files" category.
Alternatively, view EonilFSEvents alternatives based on common mentions on social networks and blogs.
-
ZipArchive
ZipArchive is a simple utility class for zipping and unzipping files on iOS, macOS and tvOS. -
FileProvider
DISCONTINUED. FileManager replacement for Local, iCloud and Remote (WebDAV/FTP/Dropbox/OneDrive) files -- Swift [GET https://api.github.com/repos/amosavian/FileProvider: 403 - Repository access blocked] -
KZFileWatchers
A micro-framework for observing file changes, both local and remote. Helpful in building developer tools. -
FileExplorer
FileExplorer is a powerful iOS file browser that allows its users to choose and remove files and/or directories
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of EonilFSEvents or a related project?
README
EonilFSEvents
Eonil 2018 Maintenance. 2019 Maintenance.
It's possible to use FSEvents directly in Swift, but it still involves many boilerplate works and subtle conversions.
This library provides mostly-faithful wrapper around FSEvents feature tailored for Swift 5.
Quickstart
Import.
import EonilFSEvents
Start.
try EonilFSEvents.startWatching(
paths: ["/"],
for: ObjectIdentifier(self),
with: { event in print(event) })
Stop.
EonilFSEvents.stopWatching(for: ObjectIdentifier(self))
Using Full Features
Make a EonilFSEventStream
, schedule it to a GCD queue, and start.
let s = try EonilFSEventStream(pathsToWatch: paths,
sinceWhen: .now,
latency: 0,
flags: [],
handler: handler)
s.setDispatchQueue(DispatchQueue.main)
try s.start()
After use, deinitialize by stop, invalidate(unschedule).
s.stop()
s.invalidate()
As soon as the last strong reference gets removed, the stream will be destroyed.
Caveats
In the Xcode, AppKit apps are configured to use Sandbox by default. Sandboxed apps cannot access files out of its container. Therefore, it could look like it cannot receive file system events out of the container. To receive file system events out of container, you should turn off sandboxing.
At this point, xcodebuild
fails on dependency resolution for packages.
I don't know why. It seems Xcode have some issues with it.
To work around, just set SYMROOT
explicitly.
See test.zsh
how to set it.
Credits & License
Copyright(c) 2018 Hoon H., Eonil. All rights reserved. Use of this library is granted under "MIT License".
*Note that all licence references and agreements mentioned in the EonilFSEvents README section above
are relevant to that project's source code only.