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 .