#reader #process

proc-reader

A std::io::Read implementation for stdout/stderr of other proccess

10 releases

0.5.0 Nov 25, 2020
0.4.0 Apr 25, 2018
0.3.1 Apr 22, 2018
0.2.2 Apr 9, 2018
0.1.2 Apr 9, 2018

#178 in Command-line interface

Download history 13/week @ 2021-02-23 15/week @ 2021-03-02 21/week @ 2021-03-09 8/week @ 2021-03-16 47/week @ 2021-03-23 35/week @ 2021-03-30 19/week @ 2021-04-06 34/week @ 2021-04-13 36/week @ 2021-04-20 25/week @ 2021-04-27 25/week @ 2021-05-04 19/week @ 2021-05-11 15/week @ 2021-05-18 13/week @ 2021-05-25 10/week @ 2021-06-01 17/week @ 2021-06-08

111 downloads per month
Used in pipecolor

MIT license

28KB
745 lines

proc-reader

Build Status Crates.io Docs.rs codecov

A std::io::Read implementation for stdout/stderr of other process

Documentation

Usage

[dependencies]
proc-reader = "0.5.0"

Supported Platform

  • x86_64-unknown-linux-gnu
  • x86_64-unknown-linux-musl
  • i686-unknown-linux-gnu
  • i686-unknown-linux-musl

Example

extern crate proc_reader;
use proc_reader::ProcReader;
use std::process::Command;
use std::io::Read;
use std::time::Duration;
use std::thread;

fn main() {
    // Create a process for reading stdout
    let child = Command::new("sh").arg("-c").arg("sleep 1; echo aaa").spawn().unwrap();

    // Create ProcReader from pid
    let mut reader = ProcReader::from_stdout(child.id());

    // Wait the end of process
    thread::sleep(Duration::from_secs(2));

    // Read from ProcReader
    let mut line = String::new();
    let _ = reader.read_to_string(&mut line);
    assert_eq!( "aaa\n", line);
}

Dependencies

~1.5–2.3MB
~49K SLoC