Run commands in parallel and aggregate outputs. Async application using tokio.
Example commands and detailed manual.
Listed in Awesome Rust - utilities
Similar interface to GNU Parallel or xargs plus useful features:
:::
argumentsWith Homebrew installed, run
brew install rust-parallel
Install the latest version of this app from crates.io:
$ cargo install rust-parallel
The same cargo install rust-parallel
command will also update to the latest version after initial installation.
multi_cartesian_product
to process :::
command line inputs.-r
/--regex
option.async
/ await
functions (aka coroutines)CommandLineArgs
instance using tokio::sync::OnceCell
.tokio::process::Command
tokio::sync::Semaphore
used to limit number of commands that run concurrently.tokio::sync::mpsc::channel
used to receive inputs from input task, and to send command outputs to an output writer task. To await command completions, use the elegant property that when all Senders
are dropped the channel is closed.tracing::Instrument
is used to provide structured debug logs.