-
-
Notifications
You must be signed in to change notification settings - Fork 258
Closed
Description
I'm going on a 5-week holiday soon, and will probably not be available to do much on this during that time. Even apart from that, I'm generally quite busy from work and my contributions to Notify have been reduced to merging changes and shaping discussions for a little while now.
I'm looking for maintainers to help with this. You'll get commit and crates.io access, a nice badge on your posts in issue threads, and eternal thanks.
My vision for Notify can be summarised thus:
- A single library for file watching in Rust, à la
fs.watchin node,Listenin Ruby,fsnotifyin Go. - I'd love for it to be embeddable / usable in other languages. C is the obvious target here, but there has been some recent forays in Python-to-Rust-and-back, for example.
- Since Single file support for inotify #22, Notify should be able to watch both directories and single files.
- A single interface for file watching. Yes, different system interfaces have different options, and one may want to take advantage of some advanced feature of one, but not here. They can use a binding directly. Notify should remain the same across all platforms and implementations.
- Abstract away as much as possible from the backends. See this comment on #22. Afaik,
fanotifyon Linux is the only backend that could provide recursive directory watches natively. Notify should allowfanotifyto handle that, as it will do so far more efficiently than us, but it should also take care of recursive watching for the other backends. - A more advanced vision of the above is to compose backends if necessary. On Windows, the native call can only watch directories, not files. We could implement single file watching by watching the directory above and filtering events, or we could use the PollWatcher to watch that file. The behaviour could be chosen dynamically, e.g. a large amount of sibling files in that directory may generate a large amount of events, and in that case it would be preferable to switch to a PollWatcher.
- Speaking of, the current PollWatcher is lacking terribly, see Polling: handle metadata and name changes #20.
Pinging those of the current contributors who aren't watching this repo: @blaenk @octplane @andelf @retep998 and I'll also post this on Reddit for visibility.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels