Wraps tokio::process::Command
to future::stream
.
toml
process-stream = "0.2.0"
Vec<String>
or Vec<&str>
```rust use processstream::Process; use processstream::StreamExt; use std::io;
async fn main() -> io::Result<()> { let ls_home: Process = vec!["/bin/ls", "."].into();
let mut stream = ls_home.stream()?;
while let Some(output) = stream.next().await {
println!("{output}")
}
Ok(())
} ```
```rust use processstream::Process; use processstream::StreamExt; use std::io;
async fn main() -> io::Result<()> { let mut lshome = Process::new("/bin/ls"); lshome.arg("~/");
let mut stream = ls_home.stream()?;
while let Some(output) = stream.next().await {
println!("{output}")
}
Ok(())
} ```
```rust use processstream::Process; use processstream::StreamExt; use std::io;
async fn main() -> io::Result<()> { let mut long_process = Process::new("/bin/app");
let mut stream = long_process.stream()?;
tokio::spawn(async move {
while let Some(output) = stream.next().await {
println!("{output}")
}
})
// process some outputs
tokio::time::sleep(std::time::Duration::new(10, 0)).await;
// close the process
long_process.kill().await;
Ok(())
} ```