I've seen rustup
be referred to as a "toolchain installer", but it's hard to find an exact definition of what Rust considers a "toolchain" to be and what the scope is for the concept.
I already have the Rust compiler and Cargo installed. What more does rustup
bring? Is it just a Rust-version-switcher?
As a .NET-developer, maybe there is there a parallel which makes it easier for me to grasp this concept?
In the Rust development environment, all tools are installed to the ~/. cargo/bin. directory, and this is where you will find the Rust toolchain, including rustc , cargo , and rustup .
Rustup is the official tool used to manage Rust tooling. Not only can it be used to install Rust and keep it updated, it also allows you to seamlessly switch between the stable, beta, and nightly Rust compilers and tooling.
rustup is a toolchain multiplexer. It installs and manages many Rust toolchains and presents them all through a single set of tools installed to ~/. cargo/bin . The rustc and cargo executables installed in ~/. cargo/bin are proxies that delegate to the real toolchain.
A new feature is added to Rust: a new commit lands on the master branch. Each night, a new nightly version of Rust is produced. Every day is a release day, and these releases are created by our release infrastructure automatically. So as time passes, our releases look like this, once a night: nightly: * - - * - - *
A toolchain is a specific version of the collection of programs needed to compile a Rust application. It includes, but is not limited to:
rustc
cargo
rustdoc
There are additional components that can be installed, such as
rustfmt
clippy
miri
rust-analyzer
or the Rust Language ServerRustup provides ways to install, remove, update, select and otherwise manage these toolchains and their associated pieces.
See also:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With