tokio-non-async 0.1.2

Helpers for dealing with tokio channels in non-async code
Documentation

Helpers for dealing with tokio channels from non-async code in a blocking manner

let (mut tx, mut rx) = mpsc::channel(10);

for i in 0i32..10 {
    tx.send(i).await.unwrap();
}

drop(tx);

tokio::task::spawn_blocking(move || {
    while let Some(received) = rx.optimistic_blocking_recv() {
        let received = rx.optimistic_blocking_recv();
        some_blocking_op(received);
    }
})
.await
.unwrap();