= cargo-vendor(1)
:idprefix: cargo_vendor_
:doctype: manpage

== 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

include::options-manifest-path.adoc[]

=== Display Options

include::options-display.adoc[]

=== Common Options

include::options-common.adoc[]

include::options-locked.adoc[]

include::section-environment.adoc[]

include::section-exit-status.adoc[]

== EXAMPLES

. Vendor all dependencies into a local "vendor" folder

    cargo vendor

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

    cargo vendor third-party/vendor

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

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

== SEE ALSO
man:cargo[1]

