vendor - The Cargo Book

# cargo vendor

## NAME

cargo-vendor - Vendor all dependencies locally

## SYNOPSIS

`cargo vendor [OPTIONS] [PATH]`

## DESCRIPTION

This cargo subcommand will vendor all crates.io and git dependencies for a project into the specified directory at `<path>`. After this command completes the vendor directory specified by `<path>` will contain all remote sources from dependencies specified. Additional manifests beyond the default one can be specified with the `-s` option.

The `cargo vendor` command will also print out the configuration necessary to use the vendored sources, which you will need to add to `.cargo/config`.

## OPTIONS

### Owner Options

-s MANIFEST
--sync MANIFEST

  Specify extra `Cargo.toml` manifests to workspaces which should also be vendored and synced to the output.

--no-delete

  Don’t delete the "vendor" directory when vendoring, but rather keep all existing contents of the vendor directory

--respect-source-config

  Instead of ignoring `[source]` configuration by default in `.cargo/config` read it and use it when downloading crates from crates.io, for example

### Manifest Options

--manifest-path PATH

  Path to the `Cargo.toml` file. By default, Cargo searches in the current directory or any parent directory for the `Cargo.toml` file.

### Display Options

-v
--verbose

  Use verbose output. May be specified twice for "very verbose" output which includes extra output such as dependency warnings and build script output. May also be specified with the `term.verbose` config value.

-q
--quiet

  No output printed to stdout.

--color WHEN

  Control when colored output is used. Valid values:

  - `auto` (default): Automatically detect if color support is available on the terminal.

  - `always`: Always display colors.

  - `never`: Never display colors.

  May also be specified with the `term.color` config value.

### Common Options

-h
--help

  Prints help information.

-Z FLAG…​

  Unstable (nightly-only) flags to Cargo. Run `cargo -Z help` for details.

--frozen
--locked

  Either of these flags requires that the `Cargo.lock` file is up-to-date. If the lock file is missing, or it needs to be updated, Cargo will exit with an error. The `--frozen` flag also prevents Cargo from attempting to access the network to determine if it is out-of-date.

  These may be used in environments where you want to assert that the `Cargo.lock` file is up-to-date (such as a CI build) or want to avoid network access.

## ENVIRONMENT

See the reference for details on environment variables that Cargo reads.

## Exit Status

0

  Cargo succeeded.

101

  Cargo failed to complete.

## EXAMPLES

1. Vendor all dependencies into a local "vendor" folder

       cargo vendor

2. Vendor all dependencies into a local "third-part/vendor" folder

       cargo vendor third-party/vendor

3. Vendor the current workspace as well as another to "vendor"

       cargo vendor -s ../path/to/Cargo.toml

## SEE ALSO

cargo(1)