If you like this kind of thing, google Self-Adjusting Computation.
One advantage of self-adjusting computation vs. the differential dataflow approach is you can convert existing imperative code to it very easily. For example, a ray tracer with self-adjusting computation is written very similarly to a ray tracer without it.
One advantage of self-adjusting computation vs. the differential dataflow approach is you can convert existing imperative code to it very easily. For example, a ray tracer with self-adjusting computation is written very similarly to a ray tracer without it.
There's a C++ library that implements parallel-friendly self-adjusting computation here: https://github.com/cmuparlay/psac
I see no reason why a Rust version couldn't be implemented.