Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Comparison

How rx compares to other Rust build tools and task runners.

rx vs raw Cargo

FeatureCargorx
Build, test, fmt, clippyYes (separate commands)Yes (unified + rx ci)
One-command local CINorx ci
Affected-package detectionNorx test --affected
Workspace task orchestrationBasic (--workspace)Task graphs + affected-package selection
Fast linker detectionNoYes (auto-detects mold/lld)
Config fileCargo.toml onlyrx.toml with profiles, tasks, env
Shell completionsNoYes (bash, zsh, fish, PowerShell)

rx wraps Cargo — it doesn’t replace it. Every rx command runs standard Cargo under the hood, and Cargo owns compilation scheduling and target/.

rx vs cargo-make

cargo-make is a task runner with a Makefile.toml format.

Featurecargo-makerx
Task definitionsMakefile.toml (verbose)rx.toml [tasks] with depends-on (concise)
Built-in Rust commandsNo (shell tasks)Yes (build, test, lint, fmt, ci)
Workspace awarenessPlugin-basedBuilt-in (cargo metadata)
Affected-package detectionNoBuilt-in

rx vs just

just is a command runner (like make but simpler).

Featurejustrx
PurposeGeneral task runnerRust-specific local CI / task runner
Rust integrationNone (runs shell commands)Deep (understands Cargo workspaces)
Affected-package detectionNoBuilt-in
Configjustfilerx.toml

rx vs cargo-xtask

cargo-xtask is a pattern for writing build scripts in Rust.

Featurecargo-xtaskrx
SetupWrite Rust code per-projectZero config, works out of the box
MaintenanceYou maintain the xtask craterx maintains the tooling
Cross-project reuseCopy-pasteSame rx binary everywhere

rx vs sccache

sccache is a shared compilation cache. They are complementary, not competing: rx orchestrates tasks; sccache caches compilation. The Cargo documentation recommends sccache for sharing compiled dependencies, and rx defers compiler-level caching to it.

Summary

Use rx if you want your CI pipeline to be defined once and runnable identically on your machine and in CI, with workspace-aware task execution and affected-package detection. Use a general-purpose task runner (just, cargo-make) if your tasks aren’t Rust-shaped, and sccache for compilation caching either way.