| CARGO-VENDOR(1) |
| |
| 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 configuration necessary to use the vendored sources would be printed |
| to stdout after cargo vendor completes the vendoring process. You will |
| need to add or redirect it to your Cargo configuration file, which is |
| usually .cargo/config.toml locally for the current package. |
| |
| OPTIONS |
| Vendor Options |
| -s manifest, --sync manifest |
| Specify an extra Cargo.toml manifest to workspaces which should also |
| be vendored and synced to the output. May be specified multiple |
| times. |
| |
| --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.toml read it and use it when downloading crates from |
| crates.io, for example |
| |
| --versioned-dirs |
| Normally versions are only added to disambiguate multiple versions |
| of the same package. This option causes all directories in the |
| “vendor” directory to be versioned, which makes it easier to |
| track the history of vendored packages over time, and can help with |
| the performance of re-vendoring when only a subset of the packages |
| have changed. |
| |
| Manifest Options |
| --manifest-path path |
| Path to the Cargo.toml file. By default, Cargo searches for the |
| Cargo.toml file in the current directory or any parent directory. |
| |
| --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. |
| |
| --offline |
| Prevents Cargo from accessing the network for any reason. Without |
| this flag, Cargo will stop with an error if it needs to access the |
| network and the network is not available. With this flag, Cargo will |
| attempt to proceed without the network if possible. |
| |
| Beware that this may result in different dependency resolution than |
| online mode. Cargo will restrict itself to crates that are |
| downloaded locally, even if there might be a newer version as |
| indicated in the local copy of the index. See the cargo-fetch(1) |
| command to download dependencies before going offline. |
| |
| May also be specified with the net.offline config value |
| <https://doc.rust-lang.org/cargo/reference/config.html>. |
| |
| 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 |
| <https://doc.rust-lang.org/cargo/reference/config.html>. |
| |
| -q, --quiet |
| Do not print cargo log messages. May also be specified with the |
| term.quiet config value |
| <https://doc.rust-lang.org/cargo/reference/config.html>. |
| |
| --color when |
| Control when colored output is used. Valid values: |
| |
| o auto (default): Automatically detect if color support is |
| available on the terminal. |
| |
| o always: Always display colors. |
| |
| o never: Never display colors. |
| |
| May also be specified with the term.color config value |
| <https://doc.rust-lang.org/cargo/reference/config.html>. |
| |
| Common Options |
| +toolchain |
| If Cargo has been installed with rustup, and the first argument to |
| cargo begins with +, it will be interpreted as a rustup toolchain |
| name (such as +stable or +nightly). See the rustup documentation |
| <https://rust-lang.github.io/rustup/overrides.html> for more |
| information about how toolchain overrides work. |
| |
| --config KEY=VALUE or PATH |
| Overrides a Cargo configuration value. The argument should be in |
| TOML syntax of KEY=VALUE, or provided as a path to an extra |
| configuration file. This flag may be specified multiple times. See |
| the command-line overrides section |
| <https://doc.rust-lang.org/cargo/reference/config.html#command-line-overrides> |
| for more information. |
| |
| -C PATH |
| Changes the current working directory before executing any specified |
| operations. This affects things like where cargo looks by default |
| for the project manifest (Cargo.toml), as well as the directories |
| searched for discovering .cargo/config.toml, for example. This |
| option must appear before the command name, for example cargo -C |
| path/to/my-project build. |
| |
| This option is only available on the nightly channel |
| <https://doc.rust-lang.org/book/appendix-07-nightly-rust.html> and |
| requires the -Z unstable-options flag to enable (see #10098 |
| <https://github.com/rust-lang/cargo/issues/10098>). |
| |
| -h, --help |
| Prints help information. |
| |
| -Z flag |
| Unstable (nightly-only) flags to Cargo. Run cargo -Z help for |
| details. |
| |
| ENVIRONMENT |
| See the reference |
| <https://doc.rust-lang.org/cargo/reference/environment-variables.html> |
| for details on environment variables that Cargo reads. |
| |
| EXIT STATUS |
| o 0: Cargo succeeded. |
| |
| o 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-party/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 |
| |
| 4. Vendor and redirect the necessary vendor configs to a config file. |
| |
| cargo vendor > path/to/my/cargo/config.toml |
| |
| SEE ALSO |
| cargo(1) |
| |