#read-stream #io-read #tokio #thread #file-io #blocking #sync

tokio-sync-read-stream

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

1 unstable release

0.1.0 Mar 28, 2023

#1174 in Concurrency


Used in blobc

Apache-2.0

7KB
69 lines

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();
}

Dependencies

~2.6–8MB
~62K SLoC