| CARGO-ADD(1) |
| |
| NAME |
| cargo-add — Add dependencies to a Cargo.toml manifest file |
| |
| SYNOPSIS |
| cargo add [options] crate… |
| cargo add [options] --path path |
| cargo add [options] --git url [crate…] |
| |
| DESCRIPTION |
| This command can add or modify dependencies. |
| |
| The source for the dependency can be specified with: |
| |
| o crate@version: Fetch from a registry with a version constraint of |
| “version” |
| |
| o --path path: Fetch from the specified path |
| |
| o --git url: Pull from a git repo at url |
| |
| If no source is specified, then a best effort will be made to select |
| one, including: |
| |
| o Existing dependencies in other tables (like dev-dependencies) |
| |
| o Workspace members |
| |
| o Latest release in the registry |
| |
| When you add a package that is already present, the existing entry will |
| be updated with the flags specified. |
| |
| Upon successful invocation, the enabled (+) and disabled (-) features |
| <https://doc.rust-lang.org/cargo/reference/features.html> of the |
| specified dependency will be listed in the command’s output. |
| |
| OPTIONS |
| Source options |
| --git url |
| Git URL to add the specified crate from |
| <https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories>. |
| |
| --branch branch |
| Branch to use when adding from git. |
| |
| --tag tag |
| Tag to use when adding from git. |
| |
| --rev sha |
| Specific commit to use when adding from git. |
| |
| --path path |
| Filesystem path |
| <https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-path-dependencies> |
| to local crate to add. |
| |
| --registry registry |
| Name of the registry to use. Registry names are defined in Cargo |
| config files |
| <https://doc.rust-lang.org/cargo/reference/config.html>. If not |
| specified, the default registry is used, which is defined by the |
| registry.default config key which defaults to crates-io. |
| |
| Section options |
| --dev |
| Add as a development dependency |
| <https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies>. |
| |
| --build |
| Add as a build dependency |
| <https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#build-dependencies>. |
| |
| --target target |
| Add as a dependency to the given target platform |
| <https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#platform-specific-dependencies>. |
| |
| To avoid unexpected shell expansions, you may use quotes around each |
| target, e.g., --target 'cfg(unix)'. |
| |
| Dependency options |
| --dry-run |
| Don’t actually write the manifest |
| |
| --rename name |
| Rename |
| <https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#renaming-dependencies-in-cargotoml> |
| the dependency. |
| |
| --optional |
| Mark the dependency as optional |
| <https://doc.rust-lang.org/cargo/reference/features.html#optional-dependencies>. |
| |
| --no-optional |
| Mark the dependency as required |
| <https://doc.rust-lang.org/cargo/reference/features.html#optional-dependencies>. |
| |
| --public |
| Mark the dependency as public. |
| |
| The dependency can be referenced in your library’s public API. |
| |
| Unstable (nightly-only) |
| <https://doc.rust-lang.org/cargo/reference/unstable.html#public-dependency> |
| |
| --no-public |
| Mark the dependency as private. |
| |
| While you can use the crate in your implementation, it cannot be |
| referenced in your public API. |
| |
| Unstable (nightly-only) |
| <https://doc.rust-lang.org/cargo/reference/unstable.html#public-dependency> |
| |
| --no-default-features |
| Disable the default features |
| <https://doc.rust-lang.org/cargo/reference/features.html#dependency-features>. |
| |
| --default-features |
| Re-enable the default features |
| <https://doc.rust-lang.org/cargo/reference/features.html#dependency-features>. |
| |
| -F features, --features features |
| Space or comma separated list of features to activate |
| <https://doc.rust-lang.org/cargo/reference/features.html#dependency-features>. |
| When adding multiple crates, the features for a specific crate may |
| be enabled with package-name/feature-name syntax. This flag may be |
| specified multiple times, which enables all specified features. |
| |
| --ignore-rust-version |
| Ignore rust-version specification in packages. |
| |
| This option is unstable and available only 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 |
| <https://github.com/rust-lang/cargo/issues/5579> for more |
| information. |
| |
| 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>. |
| |
| 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. |
| |
| -p spec, --package spec |
| Add dependencies to only the specified package. |
| |
| --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>. |
| |
| 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. Add regex as a dependency |
| |
| cargo add regex |
| |
| 2. Add trybuild as a dev-dependency |
| |
| cargo add --dev trybuild |
| |
| 3. Add an older version of nom as a dependency |
| |
| cargo add nom@5 |
| |
| 4. Add support for serializing data structures to json with derives |
| |
| cargo add serde serde_json -F serde/derive |
| |
| 5. Add windows as a platform specific dependency on cfg(windows) |
| |
| cargo add windows --target 'cfg(windows)' |
| |
| SEE ALSO |
| cargo(1), cargo-remove(1) |
| |