eclipse-iceoryx / eclipse-iceoryx/iceoryx2
File System notifications for efficient service discovery
- Dominant language
- Rust
- Stars
- 2.5k
- Forks
- 185
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 47
Description
## Brief feature description
Implement a file system watcher in iceoryx2-bb that is based on:
* `inotify` (Linux)
* `kqueue` (FreeBSD & Mac OS)
* `ReadDirectoryChangesW` (Windows)
It shall be able to blocking, timed and try wait for changes in a given path and, if possible with the sys-calls, provide a list of the changed files.
Then an integration into the `NamedConcept` trait shall be evaluated so that every concept in `iceoryx2-cal` can use this to efficiently wait for changes with one blocking call and only calls the non-blocking `NamedConcept::list()` when there is new stuff to read.
When this is done, the `Service::list` shall use this new functionality and provide it to the user so that the user can use a blocking call that informs them when `Service::list` would list service changes.
Contributor guide
Research direction
Start by reading the iceoryx2-bb watcher requirements and the NamedConcept trait, then trace how Service::list is exposed. Compare the inotify, kqueue, and ReadDirectoryChangesW constraints before deciding the blocking, timed, and try-wait behavior. Done means Service::list users can be notified of service changes without repeatedly calling the non-blocking list operation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- distributed-systems, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100