Rust Releases: HTTP PROXY
cargo-msrv depends on the rust-releases crate to determine which Rust versions exist. This is a necessary evil for
the cargo msrv find and cargo msrv verify subcommands.
To fetch an index of known Rust releases, it accesses the network. By default, the Rust GitHub repository is used to determine which stable releases and toolchains are available. As an alternative, this data can also be fetched from the Rust AWS S3 distribution bucket.
The source can be set with the --release-source <source> flag. The possible values are respectively rust-changelog and rust-dist,
for the Rust GitHub repository and the Rust AWS S3 distribution bucket. For example: cargo msrv find --release-source rust-changelog.
A third value, bundled, reads an index which is bundled with cargo-msrv itself. It requires no network access, and
therefore no proxy configuration, but it is only up-to-date up to the moment the cargo-msrv binary was built.
bundled-unless-outdated uses bundled unless the max age has been reached, then it fetches from one of the online ones
and merges the values from the online ones into the bundled source.
More options exist, which can be found on the release source page or in the CLI help.
Release source: rust-changelog and github
rust-releases uses ureq as HTTP client
for the rust-changelog (and github) source. From cargo-msrv 0.17.1 (and rust-releases 0.29.0
respectively), ureq has been configured to support configuring a network proxy from the environment.
The environment variable, ureq uses are:
ALL_PROXYorall_proxyor,HTTPS_PROXYorhttps_proxyor,HTTP_PROXYorhttp_proxy
The environment variable can be configured as follows:
<protocol>://<user>:<password>@<host>:port, where all parts except host are optional.
The <protocol> must be one of: http (socks4, socks4a and socks5 are currently not enabled). The default is http.
The default <port> is 80 when the <protocol> is http .
Examples:
localhosthttp://127.0.0.1:8080
Release source: rust-dist
TODO: Not configured specifically by cargo-msrv, but could be the case.
The following crates are used for the rust-dist source:
Probably also relevant as transitive dependencies are: