cargo(1)

NAME

cargo --- The Rust package manager

SYNOPSIS

cargo [options] command [args]
cargo [options] --version
cargo [options] --list
cargo [options] --help
cargo [options] --explain code

DESCRIPTION

This program is a package manager and build tool for the Rust language, available at https://rust-lang.org.

COMMANDS

Build Commands

{{man “cargo-bench” 1}}
    Execute benchmarks of a package.

{{man “cargo-build” 1}}
    Compile a package.

{{man “cargo-check” 1}}
    Check a local package and all of its dependencies for errors.

{{man “cargo-clean” 1}}
    Remove artifacts that Cargo has generated in the past.

{{man “cargo-doc” 1}}
    Build a package's documentation.

{{man “cargo-fetch” 1}}
    Fetch dependencies of a package from the network.

{{man “cargo-fix” 1}}
    Automatically fix lint warnings reported by rustc.

{{man “cargo-run” 1}}
    Run a binary or example of the local package.

{{man “cargo-rustc” 1}}
    Compile a package, and pass extra options to the compiler.

{{man “cargo-rustdoc” 1}}
    Build a package's documentation, using specified custom flags.

{{man “cargo-test” 1}}
    Execute unit and integration tests of a package.

Manifest Commands

{{man “cargo-add” 1}}
    Add dependencies to a Cargo.toml manifest file.

{{man “cargo-generate-lockfile” 1}}
    Generate Cargo.lock for a project.

{{man “cargo-info” 1}}
    Display information about a package in the registry. Default registry is crates.io.

{{man “cargo-locate-project” 1}}
    Print a JSON representation of a Cargo.toml file's location.

{{man “cargo-metadata” 1}}
    Output the resolved dependencies of a package in machine-readable format.

{{man “cargo-pkgid” 1}}
    Print a fully qualified package specification.

{{man “cargo-remove” 1}}
    Remove dependencies from a Cargo.toml manifest file.

{{man “cargo-tree” 1}}
    Display a tree visualization of a dependency graph.

{{man “cargo-update” 1}}
    Update dependencies as recorded in the local lock file.

{{man “cargo-vendor” 1}}
    Vendor all dependencies locally.

Package Commands

{{man “cargo-init” 1}}
    Create a new Cargo package in an existing directory.

{{man “cargo-install” 1}}
    Build and install a Rust binary.

{{man “cargo-new” 1}}
    Create a new Cargo package.

{{man “cargo-search” 1}}
    Search packages in crates.io.

{{man “cargo-uninstall” 1}}
    Remove a Rust binary.

Publishing Commands

{{man “cargo-login” 1}}
    Save an API token from the registry locally.

{{man “cargo-logout” 1}}
    Remove an API token from the registry locally.

{{man “cargo-owner” 1}}
    Manage the owners of a crate on the registry.

{{man “cargo-package” 1}}
    Assemble the local package into a distributable tarball.

{{man “cargo-publish” 1}}
    Upload a package to the registry.

{{man “cargo-yank” 1}}
    Remove a pushed crate from the index.

General Commands

{{man “cargo-help” 1}}
    Display help information about Cargo.

{{man “cargo-version” 1}}
    Show version information.

OPTIONS

Special Options

{}

{{#option “-V” “--version” }} Print version info and exit. If used with --verbose, prints extra information. {{/option}}

{{#option “--list” }} List all installed Cargo subcommands. If used with --verbose, prints extra information. {{/option}}

{{#option “--explain code” }} Run rustc --explain CODE which will print out a detailed explanation of an error message (for example, E0004). {{/option}}

{{/options}}

Display Options

{}

{{> options-display }}

{{/options}}

Manifest Options

{} {{> options-locked }} {{/options}}

{{> section-options-common }}

{{> section-environment }}

{{> section-exit-status }}

FILES

~/.cargo/
    Default location for Cargo's “home” directory where it stores various files. The location can be changed with the CARGO_HOME environment variable.

$CARGO_HOME/bin/
    Binaries installed by {{man “cargo-install” 1}} will be located here. If using rustup, executables distributed with Rust are also located here.

$CARGO_HOME/config.toml
    The global configuration file. See the reference for more information about configuration files.

.cargo/config.toml
    Cargo automatically searches for a file named .cargo/config.toml in the current directory, and all parent directories. These configuration files will be merged with the global configuration file.

$CARGO_HOME/credentials.toml
    Private authentication information for logging in to a registry.

$CARGO_HOME/registry/
    This directory contains cached downloads of the registry index and any downloaded dependencies.

$CARGO_HOME/git/
    This directory contains cached downloads of git dependencies.

Please note that the internal structure of the $CARGO_HOME directory is not stable yet and may be subject to change.

EXAMPLES

  1. Build a local package and all of its dependencies:

    cargo build
    
  2. Build a package with optimizations:

    cargo build --release
    
  3. Run tests for a cross-compiled target:

    cargo test --target i686-unknown-linux-gnu
    
  4. Create a new package that builds an executable:

    cargo new foobar
    
  5. Create a package in the current directory:

    mkdir foo && cd foo
    cargo init .
    
  6. Learn about a command's options and usage:

    cargo help clean
    

BUGS

See https://github.com/rust-lang/cargo/issues for issues.

SEE ALSO

{{man “rustc” 1}}, {{man “rustdoc” 1}}