eclipse-iceoryx / eclipse-iceoryx/iceoryx2

File System notifications for efficient service discovery

Open
#714 2 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.