mirror of
https://github.com/rust-lang/cargo
synced 2024-08-28 11:50:23 +00:00
![Alex Crichton](/assets/img/avatar_default.png)
This commit implements parallel downloads using `libcurl` powered by `libnghttp2` over HTTP/2. Using all of the previous refactorings this actually implements usage of `Multi` to download crates in parallel. This achieves some large wins locally, taking download times from 30s to 2s in the best case. The standard output of Cargo is also changed as a result of this commit. It's no longer useful for Cargo to print "Downloading ..." for each crate really as they all start instantaneously. Instead Cargo now no longer prints `Downloading` by default (unless attached to a pipe) and instead only has one progress bar for all downloads. Currently this progress bar is discrete and based on the total number of downloads, no longer specifying how much of one particular download has happened. This provides a less granular view into what Cargo is doing but it's hoped that it looks reasonable from an outside perspective as there's still a progress bar indicating what's happening.
104 lines
2.1 KiB
TOML
104 lines
2.1 KiB
TOML
[package]
|
|
name = "cargo"
|
|
version = "0.32.0"
|
|
authors = ["Yehuda Katz <wycats@gmail.com>",
|
|
"Carl Lerche <me@carllerche.com>",
|
|
"Alex Crichton <alex@alexcrichton.com>"]
|
|
license = "MIT OR Apache-2.0"
|
|
homepage = "https://crates.io"
|
|
repository = "https://github.com/rust-lang/cargo"
|
|
documentation = "https://docs.rs/cargo"
|
|
description = """
|
|
Cargo, a package manager for Rust.
|
|
"""
|
|
|
|
[lib]
|
|
name = "cargo"
|
|
path = "src/cargo/lib.rs"
|
|
|
|
[dependencies]
|
|
atty = "0.2"
|
|
crates-io = { path = "src/crates-io", version = "0.20" }
|
|
crossbeam-utils = "0.5"
|
|
crypto-hash = "0.3.1"
|
|
curl = { version = "0.4.15", features = ['http2'] }
|
|
env_logger = "0.5.11"
|
|
failure = "0.1.2"
|
|
filetime = "0.2"
|
|
flate2 = "1.0"
|
|
fs2 = "0.4"
|
|
git2 = "0.7.5"
|
|
git2-curl = "0.8.1"
|
|
glob = "0.2.11"
|
|
hex = "0.3"
|
|
home = "0.3"
|
|
ignore = "0.4"
|
|
lazy_static = "1.0.0"
|
|
jobserver = "0.1.11"
|
|
lazycell = "1.0"
|
|
libc = "0.2"
|
|
log = "0.4"
|
|
libgit2-sys = "0.7.5"
|
|
num_cpus = "1.0"
|
|
opener = "0.3.0"
|
|
rustfix = "0.4.2"
|
|
same-file = "1"
|
|
semver = { version = "0.9.0", features = ["serde"] }
|
|
serde = "1.0"
|
|
serde_derive = "1.0"
|
|
serde_ignored = "0.0.4"
|
|
serde_json = "1.0.24"
|
|
shell-escape = "0.1.4"
|
|
tar = { version = "0.4.15", default-features = false }
|
|
tempfile = "3.0"
|
|
termcolor = "1.0"
|
|
toml = "0.4.2"
|
|
url = "1.1"
|
|
clap = "2.31.2"
|
|
unicode-width = "0.1.5"
|
|
openssl = { version = '0.10.11', optional = true }
|
|
|
|
# A noop dependency that changes in the Rust repository, it's a bit of a hack.
|
|
# See the `src/tools/rustc-workspace-hack/README.md` file in `rust-lang/rust`
|
|
# for more information.
|
|
rustc-workspace-hack = "1.0.0"
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
core-foundation = { version = "0.6.0", features = ["mac_os_10_7_support"] }
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
miow = "0.3.1"
|
|
fwdansi = "1"
|
|
|
|
[target.'cfg(windows)'.dependencies.winapi]
|
|
version = "0.3"
|
|
features = [
|
|
"basetsd",
|
|
"handleapi",
|
|
"jobapi",
|
|
"jobapi2",
|
|
"memoryapi",
|
|
"minwindef",
|
|
"ntdef",
|
|
"ntstatus",
|
|
"processenv",
|
|
"processthreadsapi",
|
|
"psapi",
|
|
"synchapi",
|
|
"winerror",
|
|
"winbase",
|
|
"wincon",
|
|
"winnt",
|
|
]
|
|
|
|
[dev-dependencies]
|
|
bufstream = "0.1"
|
|
|
|
[[bin]]
|
|
name = "cargo"
|
|
test = false
|
|
doc = false
|
|
|
|
[features]
|
|
vendored-openssl = ['openssl/vendored']
|