2 releases

0.6.0-alpha.1 Mar 29, 2024
0.6.0-alpha Mar 25, 2024

#41 in #data-flow

Download history 82/week @ 2024-03-19 163/week @ 2024-03-26 50/week @ 2024-04-02

295 downloads per month
Used in 4 crates (2 directly)

EPL-2.0 OR Apache-2.0

180KB
3.5K 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 exposes *Record structures. A record in Zenoh-Flow is a description of a data flow (or part of it) that is tied to a specific infrastructure and deployment.

In particular, a [DataFlowRecord] represents a single deployment of a FlattenedDataFlowDescriptor on an infrastructure: all the nodes have been assigned to a Zenoh-Flow runtime. This is why to each [DataFlowRecord] is associated a unique InstanceId which uniquely identifies it.

⚠️ Internal usage

This crate is (mostly) intended for internal usage within the Zenoh-Flow project.

Dependencies

~11MB
~234K SLoC