8 releases

0.6.0-alpha Mar 25, 2024
0.5.0-alpha.4 Sep 4, 2023
0.5.0-alpha.2 Aug 30, 2023
0.5.0-alpha.1 Jul 6, 2023
0.0.0 Dec 21, 2022

#1599 in Network programming

Download history 4/week @ 2024-02-18 9/week @ 2024-02-25 4/week @ 2024-03-10 1/week @ 2024-03-17 114/week @ 2024-03-24 43/week @ 2024-03-31

162 downloads per month
Used in 3 crates

EPL-2.0 OR Apache-2.0

345KB
6K SLoC

Eclipse CI CI Discussion Discord

Eclipse Zenoh-Flow

Zenoh-Flow is the union of Zenoh and data flow programming: a declarative framework for computations that span from the Cloud to the Thing.

⚠️ This software is still in alpha status and should not be used in production. Breaking changes are likely to happen and the API is not yet stable. ⚠️ The documentation is still scarce. Do not hesitate to contact us on Discord.

Description

Zenoh-Flow aims at simplifying and structuring (i) the declaration, (ii) the deployment and (iii) the writing of "complex" applications that can span from the Cloud to the Thing (or close to it).

To these ends, Zenoh-Flow leverages the data flow programming model --- where applications are viewed as a directed graph of computing units, and Zenoh --- an Edge-native, data-centric, location transparent, communication middleware.

This makes for a powerful combination as Zenoh offers flexibility and extensibility while data flow programming structures computations. The main benefit of this approach is that this allows us to decorrelate applications from the underlying infrastructure: data are published and subscribed to (automatically with Zenoh-Flow) without the need to know where they are actually located.


🧑‍💻 We are currently keeping our documentation and guides in the Wiki tab of this repository.


Installation

Follow our guide here!

Getting Started

The best way to learn Zenoh-Flow is to go through our getting started guide.

Examples

We encourage you to look at the examples available in our examples repository.

🚗 If you still want more, we also ported an Autonomous Driving Pipeline!


lib.rs:

This crate provides the Zenoh-Flow Daemon: a wrapper around a Zenoh-Flow Runtime that can process requests, made on specific key expressions, to manage data flows.

In particular, a Zenoh-Flow Daemon is able to coordinate with other Zenoh-Flow Daemon(s) to manage data flows --- provided that they can reach each other through Zenoh.

Therefore, instantiating a data flow only requires communicating with a single Daemon: it will automatically request the other Daemons involved in the deployment to manage their respective nodes.

Users interested in integrating a Daemon in their system should look into the spawn() and spawn_from_config() methods.

Dependencies

~29–65MB
~1M SLoC