flo_binding
is a crate designed to store and update state in interactive applications. It makes it easier to build data-driven (aka 'reactive') applications by automatically distributing state updates and converting streams of events to and from states.
Basic use is simply:
use flo_binding::*;
let a = bind(1);
let stream = follow(a);
a.set(2); // Value 2 is now waiting on the stream
See the documentation for how to derive computed bindings or update bindings via streams.
I developed this as a part of FlowBetween which uses this library extensively and I suppose serves as a very large example of its use. I think the onion skin model provides a complex but particularly interesting example of the kind of things that can be done with this library (involving computed bindings, converting to and from streams and handling updates from multiple futures).