Skip to main content

Crate rx_runner

Crate rx_runner 

Source
Expand description

Runtime-neutral child-process execution for polling event loops.

rx-runner tags stdout/stderr lines, bounds retained output, exposes non-blocking polling and cancellation, and reaps unfinished children on drop. It uses only the Rust standard library.

use std::time::Duration;
use rx_runner::CommandSpec;

let mut process = CommandSpec::new("rustc").arg("--version").spawn()?;
loop {
    let update = process.poll()?;
    for line in update.lines {
        println!("{:?}: {}", line.stream, line.text);
    }
    if update.exit.is_some() {
        break;
    }
    std::thread::sleep(Duration::from_millis(20));
}

Structs§

CommandSpec
A program invocation with separate arguments and process options.
OutputLine
One decoded child-output line.
ProcessExit
Terminal child status.
ProcessUpdate
Output and optional terminal status produced by one poll.
RunningProcess
A running child process with non-blocking output/status polling.

Enums§

OutputStream
Child output source.

Constants§

DEFAULT_OUTPUT_CAPACITY
Default number of output lines retained between polls.