#reader-writer #transfer #monitor #byte #progress #io #read

transfer-progress

轻松监控从读取器到写入器的字节数传输

3个版本

0.1.2 2021年10月7日
0.1.1 2021年8月19日
0.1.0 2021年8月19日

#59 in #transfer

MIT/Apache

16KB
190

传输进度

一个小的Rust crate,允许您监控读取器和写入器之间传输的速度、进度和估计完成时间。

内部,为每个传输启动一个新线程,并使用progress-streams crate进行监控。

示例

use std::{
    fs::File,
    io::{self, Read},
};

use transfer_progress::Transfer;

fn main() -> io::Result<()> {
    let reader = File::open("/dev/urandom")?.take(1024 * 1024 * 1024); // 1 GiB
    let writer = io::sink();

    // Create the transfer monitor
    let transfer = Transfer::new(reader, writer);

    while !transfer.is_complete() {
        std::thread::sleep(std::time::Duration::from_secs(1));
        // {:#} makes Transfer use SI units (MiB instead of MB)
        println!("{:#}", transfer);
    }

    // Catch any errors and retrieve the reader and writer
    let (_reader, _writer) = transfer.finish()?;
    Ok(())
}

依赖项

~33KB