# Testing Cargo's parallel downloads

**URL:** <https://internals.rust-lang.org/t/testing-cargos-parallel-downloads/8466>\
**Category:** tools and infrastructure\
**Created:** [September 23, 2018, 7:44pm UTC](https://internals.rust-lang.org/t/testing-cargos-parallel-downloads/8466 "2018-09-23T19:44:31Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![alexcrichton](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/alexcrichton/32/4501_2.png) [@alexcrichton](https://internals.rust-lang.org/u/alexcrichton)\
**Post date:** [September 23, 2018, 7:44pm UTC](https://internals.rust-lang.org/t/testing-cargos-parallel-downloads/8466/1 "2018-09-23T19:44:31Z")

</div>

Hey all! Cargo has [recently gained the ability](https://github.com/rust-lang/cargo/pull/6005) to download crates in parallel rather than the old one-at-a-time strategy. In addition to having a [refreshed display](https://asciinema.org/a/uQ8du8AYyshqajCTPY1K8pK0X) when downloading crates Cargo should now be much faster by default when it’s downloading crates.

Support was also added at the same time for downloading crates over HTTP/2 instead of plain old HTTP. The [static.crates.io](http://static.crates.io) CDN (where you download crate files from) supports HTTP/2 but unfortunately the API server, [crates.io](http://crates.io) does not (yet). HTTP/2 support is disabled by default, however, while we evaluate it for inclusion.

To that end, we’re curious to get some testing of this feature! Try out a `cargo fetch` with today’s latest nightly and let us know how it went. You can remove `$CARGO_HOME/registry/{cache,src}` to force Cargo to redownload crates if you’re looking to test.

Cargo will by default use parallel HTTP/1.1 downloads now, but you can also specify `CARGO_HTTP_MULTIPLEXING=true` to enable HTTP/2. Let us know how it goes and please feel free to report bugs!

---

<div class="post-metadata">

**Author:** ![dtolnay](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/dtolnay/32/1447_2.png) [@dtolnay](https://internals.rust-lang.org/u/dtolnay)\
**Post date:** [September 23, 2018, 10:21pm UTC](https://internals.rust-lang.org/t/testing-cargos-parallel-downloads/8466/2 "2018-09-23T22:21:55Z")

</div>

Would you be open to having both the new one-line status as well as the old line-per-crate output when downloading crates? That would be consistent with the output during compilation which shows overall status but also a scrolling one line per crate. I appreciated being able to see what crate versions I am pulling in that I hadn’t ever used before.

---

<div class="post-metadata">

**Author:** ![alexcrichton](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/alexcrichton/32/4501_2.png) [@alexcrichton](https://internals.rust-lang.org/u/alexcrichton)\
**Post date:** [September 24, 2018, 4:01pm UTC](https://internals.rust-lang.org/t/testing-cargos-parallel-downloads/8466/3 "2018-09-24T16:01:38Z")

</div>

[Certainly!](https://github.com/rust-lang/cargo/pull/6085)

---

<div class="post-metadata">

**Author:** ![alexcrichton](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/alexcrichton/32/4501_2.png) [@alexcrichton](https://internals.rust-lang.org/u/alexcrichton)\
**Post date:** [March 25, 2019, 8:30am UTC](https://internals.rust-lang.org/t/testing-cargos-parallel-downloads/8466/4 "2019-03-25T08:30:55Z")

</div>

Closed on March 25, 2019, 8:30am UTC

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
