eclipse-zenoh-flow / zenoh-flow

zenoh-flow aims at providing a zenoh-based data-flow programming framework for computations that span from the cloud to the device.
Other
91 stars 20 forks source link

Extensions should accept a configuration #249

Open J-Loudet opened 6 months ago

J-Loudet commented 6 months ago

In order to not require users to install globally (via the --break-system-packages flag) the Python library of Zenoh-Flow, the path to this library should be provided in the extension.

At the same time, we want the extension to remain generic. Hence we propose to change its structure and accept, much like the nodes, an optional "configuration": a set of key value pairs.

Extensions would then be written as:

extensions:
- py:
  libraries:
    - source: path/to/shared.so
    - operator: path/to/shared.so
    - sink: path/to/shared.so
  configuration:
    wheel: path/to/python.whl

The one drawback of this proposal is that, in its current state, when validating the libraries Zenoh-Flow only verifies if they were compiled with the same version of the rust compiler and Zenoh-Flow. An incomplete configuration would only be detected at runtime.