# Dataflow programming in C++

**URL:** <https://forum.opencyphal.org/t/dataflow-programming-in-c/2356>\
**Category:** General\
**Created:** [March 25, 2025, 5:39pm UTC](https://forum.opencyphal.org/t/dataflow-programming-in-c/2356 "2025-03-25T17:39:12Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [March 25, 2025, 5:39pm UTC](https://forum.opencyphal.org/t/dataflow-programming-in-c/2356/1 "2025-03-25T17:39:13Z")

</div>

Guys check this out:

> **[GitHub - Zubax/ramen: Real-time Actor-based Message Exchange Network 🍜](https://github.com/Zubax/ramen)**
>
> Real-time Actor-based Message Exchange Network 🍜

It’s a compact single-header C++ library for flow-based programming. Here’s the idea:

```auto
               ┌────────┐
       (float) │ Summer │ (float)
 in_a ◄────────┤ │◄──────── out_sum
               │ │
       (float) │ │
 in_b ◄────────┤ │
               └────────┘

```

```c++
struct Summer
{
    ramen::Puller<float> in_a;
    ramen::Puller<float> in_b;
    ramen::Pullable<float> out_sum = [this](float& out) { out = *in_a + *in_b; };
};

```

More examples in the repo. That’s all from me for today. :3

---

<div class="post-metadata">

**Author:** ![Scoeerg](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/scoeerg/32/1713_2.png) [@Scoeerg](https://forum.opencyphal.org/u/Scoeerg)\
**Post date:** [March 29, 2025, 2:19pm UTC](https://forum.opencyphal.org/t/dataflow-programming-in-c/2356/2 "2025-03-29T14:19:08Z")

</div>

This is insanely useful for control engineers. Thanks for sharing.
