tokio-sync-read-stream 0.1.0

Create a stream from a std::io::Read using Tokio blocking threads
Documentation

tokio-sync-read-stream

Transforms a std::io::Read into a fallable futures::stream::Stream that yields Result<Vec<u8>, std::io::Error>.

Under the hood, it reads from the file in chunks of up to buffer_size on a Tokio blocking thread using spawn_blocking. A Handle to the Tokio runtime must be provided.

Usage

Add the library as a dependency:

cargo add tokio-sync-read-stream

Sample Rust code:

use std::io::File;
use tokio_sync_read_stream::SyncReadStream;

#[tokio::main]
async fn main() {
  let file = File::open("data.bin").unwrap();
  let stream: SyncReadStream<File> = file.into();
}