So, a protocol can be implemented as a FSM completely independently of Tokio / futures and then used from Tokio
But that was the point of my question. Since you've already built that FSM framework inside, why not to expose it? Or I guess it might be too specialized for your particular case.