Add dependencies to a Cargo.toml manifest file
Usage: cargo add [OPTIONS] <DEP>[@<VERSION>] ...
cargo add [OPTIONS] --path <PATH> ...
cargo add [OPTIONS] --git <URL> ...
Arguments:
[DEP_ID]...
Reference to a package to add as a dependency
You can reference a package by:
- `<name>`, like `cargo add serde` (latest version will be used)
- `<name>@<version-req>`, like `cargo add serde@1` or `cargo add serde@=1.0.38`
Options:
--no-default-features
Disable the default features
--default-features
Re-enable the default features
-F, --features <FEATURES>
Space or comma separated list of features to activate
--optional
Mark the dependency as optional
The package name will be exposed as feature of your crate.
--no-optional
Mark the dependency as required
The package will be removed from your features.
--public
Mark the dependency as public (unstable)
The dependency can be referenced in your library's public API.
--no-public
Mark the dependency as private (unstable)
While you can use the crate in your implementation, it cannot be referenced in your public
API.
--rename <NAME>
Rename the dependency
Example uses:
- Depending on multiple versions of a crate
- Depend on crates with the same name from different registries
-n, --dry-run
Don't actually write the manifest
-v, --verbose...
Use verbose output (-vv very verbose/build.rs output)
-q, --quiet
Do not print cargo log messages
--color <WHEN>
Coloring: auto, always, never
--config <KEY=VALUE>
Override a configuration value
-Z <FLAG>
Unstable (nightly-only) flags to Cargo, see 'cargo -Z help' for details
-h, --help
Print help (see a summary with '-h')
Manifest Options:
--manifest-path <PATH>
Path to Cargo.toml
--ignore-rust-version
Ignore `rust-version` specification in packages
--locked
Assert that `Cargo.lock` will remain unchanged
--offline
Run without accessing the network
--frozen
Equivalent to specifying both --locked and --offline
Package Selection:
-p, --package [<SPEC>]
Package to modify
Source:
--path <PATH>
Filesystem path to local crate to add
--git <URI>
Git repository location
Without any other information, cargo will use latest commit on the main branch.
--branch <BRANCH>
Git branch to download the crate from
--tag <TAG>
Git tag to download the crate from
--rev <REV>
Git reference to download the crate from
This is the catch all, handling hashes to named references in remote repositories.
--registry <NAME>
Package registry for this dependency
Section:
--dev
Add as development dependency
Dev-dependencies are not used when compiling a package for building, but are used for
compiling tests, examples, and benchmarks.
These dependencies are not propagated to other packages which depend on this package.
--build
Add as build dependency
Build-dependencies are the only dependencies available for use by build scripts
(`build.rs` files).
--target <TARGET>
Add as dependency to the given target platform
Run `cargo help add` for more detailed information.