Skip to content
Cargo subcommand to vendor crates.io dependencies
Branch: master
Clone or download
dependabot-bot and dependabot Bump backtrace from 0.3.14 to 0.3.15
Bumps [backtrace](https://github.com/alexcrichton/backtrace-rs) from 0.3.14 to 0.3.15.
- [Release notes](https://github.com/alexcrichton/backtrace-rs/releases)
- [Commits](alexcrichton/backtrace-rs@0.3.14...0.3.15)

Signed-off-by: dependabot[bot] <support@dependabot.com>
Latest commit ac1f6ae Apr 4, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ci
src add option to vendor the current (main) crate Feb 24, 2019
tests add tests for new "--vendor-main-crate" switch Feb 27, 2019
.gitignore Initial commit Aug 24, 2015
.travis.yml
Cargo.lock
Cargo.toml
LICENSE-APACHE
LICENSE-MIT
README.md
appveyor.yml Build tags on CI Oct 31, 2018

README.md

cargo-vendor

Build Status Build status

This is a Cargo subcommand which vendors all crates.io dependencies into a local directory using Cargo's support for source replacement.

Installation

Currently this can be installed with:

$ cargo install cargo-vendor

You can also install precompiled binaries that are assembled on the CI for this crate.

Example Usage

Simply run cargo vendor inside of any Cargo project:

$ cargo vendor
add this to your .cargo/config for this project:

    [source.crates-io]
    replace-with = 'vendored-sources'

    [source.vendored-sources]
    directory = '/home/alex/code/cargo-vendor/vendor'

This will populate the vendor directory which contains the source of all crates.io dependencies. When configured, Cargo will then use this directory instead of looking at crates.io.

Also note that the output of cargo vendor that should be configuration is all on stdout (as opposed to stderr where other messages go), so you can also do:

$ cargo vendor > .cargo/config

to vendor and initialize your config in the same step!

Flag --no-merge-sources

If the vendored Cargo project makes use of [replace] sections it can happen that the vendoring operation fails, e.g. with an error like this:

found duplicate version of package `libc v0.2.43` vendored from two sources:
...

The flag --no-merge-sources should be able to solve that. Make sure to grab the .cargo/config file directly from standard output since the config gets more complicated and unpredictable.

Example:

$ cargo vendor --no-merge-sources > .cargo/config

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in cargo-vendor by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

You can’t perform that action at this time.