#tasks #parallel #cli

app concurrently

Run multiple processes concurrently

7 releases

0.3.3 Jul 29, 2023
0.3.2 Jul 4, 2023
0.3.1 Jun 26, 2023
0.2.0 Dec 16, 2021
0.1.1 Dec 14, 2021

#942 in Command line utilities

42 downloads per month

MIT/Apache

315KB
741 lines

Concurrently

Run multiple processes concurrently, with support for cargo.

Written in Rust with ☕

Install with Cargo

$ cargo install concurrently

Getting Started

Create a tasks.toml file in the root of your project:

[tasks.client]
workspace = true  # Run the client cargo workspace member
retries = 3       # Retry 3 times before exiting
delay = "1s"      # Wait 1 second before running

[tasks.server]
workspace = true  # Run the server cargo workspace member
release = true    # Run in --release mode

[tasks.db]
command = [
  "docker",
  "run",
  "postgres",
]

Now you can simply run concurrently:

$ cargo concurrently

Config

Common

These configs are optional, and can be used with all tasks.

Config Type
prepare String Runs a command before starting the task.
delay String Waits before starting the task. This can be in the format of "1s", "100ms", etc.
retries Number Retries this task before exiting all other tasks.

Shell Task

Shell task runs a shell command.

Config Type
command String or Array Runs the command as the task.

Cargo Task

Cargo tasks are built using cargo with cargo build -p <name> where name is the name of the task.

cargo must be set to true for a task to be a cargo task.

Config Type
cargo Bool If set to true, treats this task as a cargo crate. The crate will be built on startup.
release Bool Builds for release.
features [String] Array of feature flags.

Dependencies

~8–19MB
~229K SLoC