Rustup 1.20.0 release: profile support, improvements in update and doc commands

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



:









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



!









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 .








All Articles