The rustup working group is pleased to announce the release of a new version, 1.20.0. Rustup is the recommended utility for installing Rust , a programming language that allows everyone to create reliable and efficient software.
If you already have rustup
installed, then to upgrade to version 1.20.0 you just need to run the following command:
rustup self update
Also, rustup
automatically updated after a regular toolbox update:
rustup update
If you have not already installed rustup
, you can install it from the corresponding page of our website.
What's New in rustup 1.20.0
The highlight of this release is support for profiles, the ability to get the latest available nightly
release that has all the components you need, and improvements to the rustup doc
command. You can also see a list of changes to find out about all the changes included in this release.
Profiles
Previous versions of rustup
installed several components by default along with each toolkit — they were a compiler ( rustc
), a package manager ( cargo
), a standard library ( rust-std
), and local documentation ( rust-docs
). Despite the fact that this approach is convenient for development on a local PC, some components (like rust-docs
) slowed down the installation. For example, documentation is usually not needed on the assembly server, or it slows down the installation on Windows due to the large number of files.
To solve this problem, rustup
1.20.0 introduced the concept of profiles ("profiles"). They group the components that you can choose to download during the installation of a new toolbox. Currently available profiles are minimal
, default
and complete
:
- minimal - a minimal profile that includes several components to get a minimal working environment (
rustc
,rust-std
andcargo
). It is recommended for Windows if local documentation is not used, as well as on CI build servers. - default - the default profile, includes all the components that were previously installed by default - (
rustc
,rust-std
,cargo
and local documentation ofrust-docs
), plusrustfmt
andclippy
. This profile will be used by defaultrustup
, and is recommended for general use. - complete - a complete profile that includes all components available through
rustup
, includingmiri
and IDE integration tools (rls
andrust-analysis
).
You can use the rustup set profile
command to rustup set profile
. For example, you can select the minimum profile to use as follows:
rustup set profile minimal
You can also select a profile the first time you install rustup
, either interactively by selecting the "Customize installation" option, or programmatically passing the --profile=<name>
flag. Profiles will only affect new installable toolkits; later, you can install individual components using the commands: rustup component add
.
Installing the latest compatible nightly
version
While most components guarantee stable releases on tier 1 platforms , the same guarantees do not apply to nightly releases. Often, utilities like rustfmt
, clippy
or rls
disappear in the last nightly
build. If you depend on these utilities, this behavior can make nightly
updating nightly
, since rustup
prevents updating if previously installed components are not available.
Starting with rustup 1.20.0, if the component you previously installed is not available in the last nightly
build, rustup update
will go back in time to find the latest release that has all the necessary components. If there is no such release, then you must either wait or remove some of the components.
Along with these changes, the --component
/ -c
and --target
/ -t
flags appeared for rustup toolchain install
in rustup
1.20.0, allowing you to add components and target platforms during the installation of the toolbox. These flags also look for the nearest suitable nightly
build if the current one does not contain the requested components.
Improvements in rustup doc
The rustup doc
command opens the locally installed documentation in your browser without requiring an internet connection. rustup
1.20.0 extends the capabilities of this command and allows you to open the API documentation for a specific element. For example, to view the documentation for Iterator
you can use the following command:
rustup doc std::iter::Iterator
This works for traits, structures and enumerations, macros, and modules and can work for std
, alloc
and core
packages. However, note that this functionality only works if you have a rust-docs
component in your toolbox. Over time, we will improve UX teams and if you have ideas, then let us know!
Acknowledgments
Thanks to all the members working on rustup
!
- Andy mccaffrey
- Artem Borisovskiy
- Benjamin chen
- Daniel Silverstone
- Jon gjengset
- Lzu tao
- Matt kantor
- Mitchell hynes
- Nick cameron
- Picojr
- Pietro albini
From translators
With any questions on the Rust language, you can be helped in the Russian-language Telegram chat or in a similar chat for newcomers.
This article was jointly translated by andreevlex , funkill and blandger .