Prototype for a process/library-based dora-rs implementation, instead of framework-based. The idea is that each operator is compiled as a separate executable. The dora-coordinator runtime is responsible for reading the dataflow descriptor file and launching the operators accordingly. The operators use a common library called dora-api, which implements the communication layer based on zenoh.
This approach has the following advantages:
There are drawbacks too, for example:
cargo build -p dora-runtime --releaseexamples using cargo build -p dora-coordinator --examples --releasecargo build --manifest-path ../runtime/examples/example-operator/Cargo.toml --releasecd ../runtime/examples/c-operatorcp ../../../api/c/operator/api.h .clang -c operator.cclang -shared -v operator.o -o operator.somini-dataflow example using cargo run --release -- run examples/mini-dataflow.yml
timer source, which sends the current time periodically, and a logger sink, which prints the incoming data.timer will exit after 100 iterations. The other nodes/operators will then exit as well because all sources closed.