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.