All Features
Build Faster

Parallel Execution

Run independent tasks simultaneously. Jake analyzes your dependency graph and parallelizes safely—no race conditions, no configuration needed.

  • Automatic analysis — Jake finds safe parallelization points
  • Configurable workers-j4 or -j for CPU count
  • Safe execution — Dependencies always respected
Jakefile
task all: [frontend, backend, docs]
    echo "All packages built!"

# These run in parallel - no dependencies between them
task frontend:
    npm --prefix frontend build

task backend:
    cargo build --release

task docs:
    mkdocs build

# Deploy waits for frontend and backend
task deploy: [frontend, backend]
    ./deploy.sh

The Difference

Same tasks, dramatically different total time.

Sequential
build-frontend    ████████████████  (10s)
build-backend                       ████████████████  (10s)
build-docs                                            ████████  (5s)
                  ─────────────────────────────────────────────────
                                                           Total: 25s
Parallel with -j
build-frontend    ████████████████  (10s)
build-backend     ████████████████  (10s)
build-docs        ████████          (5s)
                  ─────────────────────────────────────────────────
                                                           Total: 10s
60% faster

Same work, less time.

How It Works

Jake builds a dependency graph and identifies tasks that can run concurrently.

1

Analyze Dependencies

Jake reads your Jakefile and builds a graph of which tasks depend on which.

2

Find Parallel Groups

Tasks with no dependencies between them are grouped for parallel execution.

3

Execute Safely

Independent tasks run simultaneously. Dependent tasks wait for their dependencies.

Terminal
$ jake -j4 all

 frontend   backend   docs
 docs (1.2s)
 frontend (2.8s)
 backend (3.1s)

 all
  echo "All packages built!"
 all (3.1s total)

Use Cases

Parallel execution shines in these scenarios.

CI/CD Pipelines

Run lint, test, build, and security checks in parallel.

task ci: [lint, test, build, security-scan]
    echo "CI complete"

Cross-Platform Builds

Build for multiple platforms simultaneously.

task release: [build-linux, build-macos, build-windows]
    echo "All platforms built"

Monorepo Packages

Build multiple packages in a monorepo at once.

task build: [pkg-web, pkg-api, pkg-mobile, pkg-shared]
    echo "All packages built"

Asset Processing

Process images, CSS, and JS in parallel.

task assets: [optimize-images, compile-sass, bundle-js]
    echo "Assets ready"

vs Just

Just runs tasks sequentially. Jake can parallelize them.

Just Sequential only
just frontend backend docs
# Runs one after another
# Total: 25s
Jake Parallel
jake -j frontend backend docs
# Runs simultaneously
# Total: 10s

Usage

$ jake -j all # Use all CPU cores
$ jake -j4 all # Use 4 workers
$ jake -j -v all # Parallel + verbose
$ jake -j -w build # Parallel + watch mode