# Introduction - dora-rs

# Welcome to `dora`!

`dora` goal is to be a low latency, composable, and distributed data flow.

By using `dora`, you can define robotic applications as a graph of nodes that can be easily swapped and replaced. Those nodes can be shared and implemented in different languages such as Rust, Python or C. `dora` will then connect those nodes and try to provide as many features as possible to facilitate the dataflow.

## ✨ Features

Composability as:

- `YAML` declarative programming
- polyglot:
  - Rust
  - C
  - C++
  - Python
- Isolated operators and custom nodes that can be reused.

Low latency as:

- written in ...Cough...blazingly fast ...Cough... Rust.
- PubSub communication with shared memory!
- Zero-copy on read!

Distributed as:

- PubSub communication between machines with `zenoh`
- Distributed telemetry with `opentelemetry`

## ⚖️ LICENSE

This project is licensed under Apache-2.0. Check out NOTICE.md for more information.