All Versions
Latest Version
Avg Release Cycle
60 days
Latest Release
702 days ago

Changelog History
Page 1

  • v1.25.1 Changes

    July 12, 2022

    โช This version of Rustup reverts a single PR from 1.25.1 and tidies a couple of internal bits of code.

    In brief, it turns out that our optimisation for RUSTC and RUSTDOC cause problems with some tooling which runs under one cargo invocation, but expects to invoke either cargo or rustc without resetting the environment completely. As such, some particularly โช confusing error messages ensued, and we decided to revert this one optimisation while we ๐Ÿš€ wait to correct things in a future release.

    Thanks go to:

    • Joshua Nelson
    • Manish Goregaokar
    • Robert Collins

    ๐Ÿš€ [1.25.1]:

  • v1.25.0 Changes

    July 11, 2022

    This version of Rustup involves a significant number of internal cleanups, both in terms ๐Ÿ“š of the Rustup code and its documentation. In addition to a lot of work on the codebase ๐Ÿš€ itself, due to the length of time since the last release this one has a record number of contributors and we thank you all for your efforts and time.

    ๐Ÿš€ Rather than list every single merged PR since the last release, we have pulled out a number of highlights to include in this changelog entry. For everything else, please review the repository.

    โž• Added

    • โž• Added rust-gdbgui to the proxy list pr#2811
    • ๐Ÿ‘Œ Support rustup default none as a way to unset the default toolchain pr#2831
    • ๐Ÿ Build Rustup for Windows arm64 pr#2835
    • ๐Ÿ‘Œ Support Illumos/OpenIndiana platform check on website pr#2839
    • โž• Add info message if self-update is disabled during update pr#2845
    • โž• Added RUSTC and RUSTDOC environment variables for proxied child processes pr#2958
    • โž• Added offer to auto-install VS 2022 pr#2954
    • โž• Added --verbose mode for rustup show pr#2992
    • โž• Added support for --force-non-host to more subcommands pr#2968

    ๐Ÿ”„ Changed

    • โšก๏ธ Updated the opener crate used for rustup-doc pr#2792
    • ๐Ÿ”„ Changed the recursion limit for tool/proxy invocation to 20 pr#2812
    • โšก๏ธ Updated to newer effective-limits crate to reduce "sysinfo not supported" errors pr#2817
    • ๐Ÿ– Handle -y more robustly in pr#2815
    • ๐Ÿ›  Fix infinite recursion in bash completion when rustc not on PATH pr#2833
    • โšก๏ธ Update macOS aarch64 CI to newer xcode pr#2877
    • โšก๏ธ Update website to load TTF fonts more effectively pr#2862
    • Retry curl invocations in pr#2869
    • ๐Ÿ‘ Better handle busybox's wget in pr#2885
    • ๐Ÿ‘Œ Improve target matching to reduce spurious deprecation warnings pr#2854
    • ๐ŸŽ Parse channel manifest only once to improve performance pr#2898
    • โœ‚ Remove trailing slashes from toolchain names pr#2897
    • ๐Ÿ‘ Migrate OpenPGP support to Sequoia PGP pr#2847
    • We now send a user agent on http requests to improve compatibility with proxies pr#2953
    • We won't prepend ${CARGO_HOME}/bin to PATH unless it's missing pr#2978

    Thanks go to:

    • ไบŒๆ‰‹ๆŽ‰ๅŒ…ๅทฅ็จ‹ๅธˆ (hi-rustin)
    • ๐Ÿ‘€ Brian Bowman (Seeker14491)
    • Jon Gjengset (jonho)
    • pierwill
    • Daniel Silverstone (kinnison)
    • Robert Collins (rbtcollins)
    • Alan Somers (asomers)
    • Brennan Vincent (umanwizard)
    • Joshua Nelson (jyn514)
    • Eric Huss (ehuss)
    • Will Bush (willbush)
    • Thad Guidry (thadguidry)
    • Alexander Lovchin (alovchin91)
    • zoodirector
    • Takayuki Nakata (giraffate)
    • Yusuke Abe (chansuke)
    • Wyatt Carss (wcarss)
    • Sondre Aasemoen (sondr3)
    • facklambda
    • Chad Dougherty (crd477)
    • Noritada Kobayashi (noritada)
    • Milan (mdaverde)
    • Pat Sier (pjsier)
    • Matt Keeter (mkeeter)
    • Alex Macleod (alexendoo)
    • Sathwik Matsa (sathwikmatsa)
    • Kushal Das (kushaldas)
    • Justus Winter (teythoon)
    • k900
    • Nicolas Ambram (nico-abram)
    • Connor Slade (basicprogrammer10)
    • Yerkebulan Tulibergenov (yerke)
    • Caleb Cartwright (calebcartwright)
    • Matthias Beyer (matthiasbeyer)
    • spacemaniac
    • Alex Touchet (atouchet)
    • Guillaume Gomez (guillaumegomez)
    • Chris Denton (chrisdenton)
    • Thomas Orozco (krallin)
    • cui fliter (cuishuang)
    • Martin Nordholts (enselic)
    • Emil Gardstrรถm (emilgardis)
    • Arlo Siemsen (arlosi)

    ๐Ÿš€ [1.25.0]:

  • v1.24.3 Changes

    May 31, 2021

    ๐Ÿš€ This patch release focusses around resolving some regressions in behaviour in ๐Ÿš€ the 1.24.x series. One problem, related to accounting for the release of data ๐Ÿ›  blocks in the unpack slab allocator, fixed in pr#2779, would manifest in the ๐Ÿ›  installer hanging during installation. A second, fixed in pr#2781, manifested in very early Rust versions (1.0 through 1.7) repeatedly having their checksums fetched despite already being installed. โš  Finally the heuristic which started warning that toolchains being installed may not work on the given host was improved in pr#2782 to reduce false-positive ๐Ÿ rate and reduce worry among Windows users in particular.

    โž• Added

    • โž• Added the ability to configure the auto-self-update functionality. This will be of most use when people are testing unreleased versions of Rustup and wish to ensure they don't accidentally lose the test version, without having to remember to run with --no-self-update all the time. pr#2763

    ๐Ÿ”„ Changed

    • We no longer delete the top level of $RUSTUP_HOME/tmp and $RUSTUP_HOME/download meaning that if you have these set up as symlinks to another place, or bind mounts, etc. things should work. pr#2433
    • We more gracefully handle outlier situations with unpack-RAM, panicing less often, clamping settings into viable ranges and warning instead. pr#2780

    Thanks go to:

    • Ian Jackson
    • Alexander (asv7c2)
    • pierwill
    • ไบŒๆ‰‹ๆŽ‰ๅŒ…ๅทฅ็จ‹ๅธˆ (hi-rustin)
    • Robert Collins
    • Daniel Silverstone

    ๐Ÿš€ [1.24.3]:

  • v1.24.2 Changes

    May 05, 2021

    ๐Ÿš€ This patch release primarily exists to work around a ๐Ÿ problem discovered on some Windows (and potentially other) systems where a combination of factors, including suspected allocator behaviour, led to Rustup failing to install certain toolchains. The symptom users observed was a failure to allocate 1677732 bytes: a chunk used for unpacking very large files. ๐Ÿ›  We hope this is fixed in a combination of pr#2750 and pr#2756.

    In addition to that, we also:

    โž• Added

    • SHA256 links on the download page so that you can verify your downloads if you want to be certain. pr#2719
    • โž• Added --verbose to rustup show active-toolchain to also display the version of the compiler for the toolchain. pr#2710
    • ๐Ÿ‘ We now support 1.x installation channel names for versions 1.0 through 1.8 by hardcoding 1.x.0 since they lack patch releases. pr#2758

    ๐Ÿ”„ Changed

    • Amended the behaviour of the 'missing components' code so that if the problem exists when installing a toolchain (rather than updating it) the message is different and leads you to other remediations. pr#2709
    • Amended the error message for a missing component so that when you're using a nightly toolchain and rust-std is missing for a given target, we lead you to cargo build -Z build-std as a remediation. pr#2732
    • ๐Ÿ‘Œ Improved the documentation around settings.toml locations. pr#2698
    • Internal improvements around retrying removal of files. pr#2752

    Thanks go to:

    • ไบŒๆ‰‹ๆŽ‰ๅŒ…ๅทฅ็จ‹ๅธˆ (hi-rustin)
    • Robert Collins
    • Daniel Silverstone
    • Joshua Nelson
    • Joรฃo Marcos Bezerra
    • Carol (Nichols || Goulding)
    • Josh Rotenberg
    • Martijn Gribnau
    • pierwill

    ๐Ÿš€ [1.24.2]:

  • v1.24.1 Changes

    April 27, 2021

    ๐Ÿ›  This bugfix release corrects an oversight in the code we introduced to check for unknown proxy names. The original change accidentally omitted the rustfmt and cargo-fmt proxies due to a quirk of the fact those proxies were not originally part of a Rust component.

    We're sorry for pain this may have caused.

    ๐Ÿš€ [1.24.1]:

  • v1.24.0 Changes

    April 27, 2021

    ๐Ÿ›  This release is mostly a bugfix and quality of life improvement release. However ๐Ÿš€ the headlines for this release are:

    ๐Ÿ‘ 1. Support of rust-toolchain.toml as a filename for specifying toolchains. ๐Ÿ‘ 2. Streaming support for large files to better enable Rust on lower memory platforms such as some Raspberry Pi systems.

    ๐Ÿ‘€ When we introduced TOML support to rust-toolchain we expected to see some uptake but we saw a lot more than we had expected. Since Cargo is migrating to explicit .toml extensions on things like .cargo/config.toml it was considered sensible to also do this for rust-toolchain - at least the toml variant thereof.

    ๐Ÿš€ This release of rustup has seen a significant number of new contributors to ๐Ÿ‘€ the project, and we hope to see many of you again in the future.

    โž• Added

    • Optional use of RUSTLS as TLS backend for Reqwest pr#2517
    • ๐Ÿ‘ We now support some corner cases in tarballs to permit unpacking early Rust versions pr#2502
    • โฌ†๏ธ When running rustup check we now report possible rustup upgrades too. pr#2615
    • We detect and warn if you try and install on an x32 system since for now Rust isn't hostable on that. pr#2622
    • ๐Ÿ‘ We do, however, support gnux32 as an environment label ready for future support pr#2631
    • ๐Ÿ We now support managing PATHs on Windows which contain non-unicode values. pr#2649
    • You can now name the TOML variant of rust-toolchain as rust-toolchain.toml pr#2653
    • ๐Ÿ We prompt harder when checking for the MSVC tooling on Windows now. pr#2529
    • Experimental support for zstd compressed tarballs in channels. NOTE, this does not mean channels will magically gain zstd compressed component files any time soon. pr#2676
    • ๐Ÿ Register rustup with the Windows installed programs list when installing. This is another experiment into whether this is useful for Windows users. pr#2670
    • โž• Added the ability to specify a path rather than a toolchain channel in the rust-toolchain.toml file. pr#2678

    ๐Ÿ”„ Changed

    • rustup-init now detects tls1.2 for cURL 7.73+ pr#2604
    • 0๏ธโƒฃ Installation now indicates the defaults on all questions pr#2605
    • ๐Ÿ‘ We now support the Big Sur major OS version pr#2607
    • You can now specify profile in rust-toolchain's TOML form pr#2586
    • ๐Ÿ‘ We now use . instead of source to better support non-bash POSIX shells pr#2616
    • ๐Ÿ›  We fixed a nasty corner case on wildcarded component installation/recognition pr#2602
    • Our website now has a favicon pr#2419
    • We no longer rely on a broken mktemp invocation, this should make more compatible pr#2650
    • ๐Ÿ‘ท We now do a better job of reporting non-installable toolchains pr#2562
    • ๐Ÿ‘ We cope better when modifying RC files which lack a trailing newline pr#2667
    • We are edging closer to requiring a specific force argument to install a toolchain whose host doesn't match the running system. This may break your CI in future so you should check carefully. The main use-case for this capability is the rust-embedded/cross project which we are working with to ensure this doesn't cause problems in the future. [pr#2672][]
    • ๐Ÿ‘Œ Support streaming large files during unpack phase. pr#2707
    • ๐Ÿ‘ We report when you call rustup with an unsupported arg0 -- for example if you make a symlink or hard link to the binary with a name other than one of the proxies. pr#2716

    We also cleaned up a number of error message cases, including some on invalid ๐Ÿ‘ toolchain name pr#2613, a better message when no toolchain is installed pr#2657, and some on component unavailability pr#2619.


    • โž• Added notes about Powershell to proxies documentation pr#2592
    • โšก๏ธ Various updates to the rustup manual build process including pr#2628
    • ๐Ÿ“š Small fixes on how to build rustup documentation pr#2641
    • We clarified the message around restarting the shell when installing pr#2684

    Thanks go to:

    • SHA Miao
    • est31
    • Andrew Norton
    • Gareth Hubball
    • ไบŒๆ‰‹ๆŽ‰ๅŒ…ๅทฅ็จ‹ๅธˆ (hi-rustin)
    • Tudor Brindus
    • Eduard Miller
    • Daniel Alley
    • ะฝะฐะฑ (nabijaczleweli)
    • Eric Huss
    • chansuke
    • skim (sl4m)
    • Joshua Nelson
    • kellda
    • Alex Chan
    • Philipp Oppermann
    • Michael Cooper
    • Aloรฏs Micard
    • Gurkenglas
    • Vasili (3point2)
    • Jakub Stasiak
    • Robert Collins
    • Jubilee (workingjubilee)
    • Avery Harnish

    ๐Ÿš€ [1.24.0]:

  • v1.23.1 Changes

    December 01, 2020

    ๐Ÿš€ This point release is mostly to correct a problem where if you installed rustup with --no-modify-path then the .cargo/env file would not be created ๐ŸŽ in some cases. In addition, we have rebuilt the macos binaries to correct an oversight which caused older Macs to be unable to run the new version. If you encountered a problem with liblzma on mac os 10.13 then this version should solve that for you.

    ๐Ÿš€ Finally, the illumos binary is now part of the release properly.

    Thanks go to:

    • ร‰lie Roudninski
    • Jeroen Ooms
    • Jake Goulding
    • Joshua M. Clulow
    • Neil Mitchell
    • Richard Gomes

    ๐Ÿš€ [1.23.1]:

  • v1.23.0 Changes

    November 27, 2020

    ๐Ÿš€ The main points for this release are that rustup now supports a number of new host platforms, most importantly of which is aarch64-apple-darwin for the new ๐Ÿ‘ Apple M1 based devices, and that we support a new structured format for the rust-toolchain file. You can find more information ๐Ÿ“š in the new book format documentation.

    ๐Ÿš€ It is now also possible to install a particular release of the compiler as a ๐Ÿš€ two-part version number. If you do this, then the release channel will only ๐Ÿš€ update if there is a patch release of the compiler. For example, if you ran ๐Ÿš€ rustup toolchain install 1.48 at the time of this release of rustup you would end up with a toolchain called 1.48 which contained 1.48.0. If ๐Ÿš€ subsequently 1.48.1 were released, a rustup update would update your 1.48 from 1.48.0 to 1.48.1.

    As always, there were more changes than described below, thanks to everyone ๐Ÿš€ who contributed to this release. Hilights for this release are detailed below, ๐Ÿ‘€ but you can always see the full list of changes via the Git repository.

    โž• Added

    • ๐Ÿ“š Our documentation is now in "book" form. pr#2448
    • When you retrieve rustup's version, you'll also be told the version of the compiler for your default toolchain, to disambiguate things a little. pr#2465
    • ๐Ÿ‘Œ Support added for aarch64-unknown-linux-musl pr#2493
    • ๐Ÿ‘Œ Support added for aarch64-apple-darwin pr#2521
    • ๐Ÿ‘Œ Support added for x86_64-unknown-illumos pr#2432
    • You can now override the system-wide settings fallback path pr#2545
    • ๐Ÿ‘Œ Support for major.minor channels pr#2551

    ๐Ÿ”„ Changed

    • โšก๏ธ Significant updates to our handling of PATH updating on installation was made. Nominally this ought to have little external change visibility but it may make it more robust for some people. pr#2387
    • ๐Ÿ†• New support for toml-based rust-toolchain file format. This will be expanded upon going into the future to add new functionality, but for now the basics are in place, permitting you to select a channel, targets, and components which may be needed to build your applications. pr#2438
    • We now fall back to copying files when rename-in-place causes problems. This may improve matters in dockerised environments where rustup is preinstalled with a toolchain already. pr#2410
    • ๐Ÿ‘ท We do a better job of exiting gracefully in a number of circumstances. pr#2427
    • 0๏ธโƒฃ The reqwest backend (the default download backend) now supports socks5 proxies. pr#2466
    • If you use a proxy for a component which is not part of a custom toolchain you are using then we emit a message about trying to build that component. pr#2487
    • If you try and unpack super-large components which would previously be gracefully rejected, instead we try and if we succeed then you get to have the component unpacked. Unfortunately this means if we fail you could end up with a broken toolchain install. [pr#2490]
    • โšก๏ธ We will recommend ways to recover if you can't update your toolchain due to components or targets going missing. pr#2384
    • If you choose to install a toolchain which is for a different target than you are running on, we will warn you and direct you toward rustup target install in case that's what you meant. pr#2534


    • Aaron Loucks
    • Aleksey Kladov
    • Aurelia Dolo
    • Camelid
    • Chansuke
    • Carol (Nichols || Goulding)
    • Daniel Silverstone
    • Dany Marcoux
    • Eduard Miller
    • Eduardo Broto
    • Eric Huss
    • Francesco Zardi
    • FR Bimo
    • Ivan Nejgebauer
    • Ivan Tham
    • Jake Goulding
    • Jens Reidel
    • Joshua M. Clulow
    • Joshua Nelson
    • Jubilee Young
    • Leigh McCulloch
    • Lzu Tao
    • Matthias Krรผger
    • Matt Kraai
    • Matt McKay
    • Nick Ashley
    • Pascal Hertleif
    • Paul Lange
    • Pietro Albini
    • Robert Collins
    • Stephen Muss
    • Tom Eccles

    ๐Ÿš€ [1.23.0]:

  • v1.22.1 Changes

    July 08, 2020

    A regression in proxied behaviour slipped in due to a non-compatible change in url slipping in in 2.1 which caused a misbehaviour in env_proxy. ๐Ÿš€ which was fixed but not released to until after 1.22.0 was built.

    Fortunately, inejge noticed and provided a fix for us by publishing a new env_proxy and providing us with this fix.

    We apologise for any inconvenience this caused.

    ๐Ÿ”„ Changed

    • โšก๏ธ Update to env_proxy 0.4.1 - #2399
    • ๐Ÿ›  Fixed website copy button and copy space overflow - #2398


    • Ivan Nejgebauer
    • Ben Chen

    ๐Ÿš€ [1.22.1]:

  • v1.22.0 Changes

    June 30, 2020

    ๐Ÿ”จ Alongside a significant amount of internal refactoring and code updates, ๐Ÿš€ the highlights of this release include:

    • ๐Ÿš€ We have switched to Github Actions to make our CI and release process more consistent.
    • We've invested time in the flow when you reinstall rustup atop an existing installation.
    • We've doubled down on discouraging the use of the internal-development-focussed complete profile. Please use default or minimal unless you're trying to test/develop the Rust tooling itself.
    • We've made a number of subtle quality-of-life improvements around the CLI.
    • โž• Added a (provisionally unofficial) snap of rustup
    • We've worked hard to improve a lot of the messages (error and informational) in the tool.
    • We've increased internal timeouts and retries in an attempt to improve the situation for McAfee users.
    • While it's not a change, we've documented that rust-toolchain must be UTF8 encoded.

    While the changes spanned around 90 individual pull requests, here are the main changes and additionsโ€ฆ

    ๐Ÿ”„ Changed

    • ๐Ÿ›  Fixed various links to our repo and to the forge - #2173
    • ๐Ÿ‘Œ Improved OS detection (particularly darwin) in - #2042
    • ๐Ÿ›  Fixed bug where i686 installer on x86_64 windows would intend to install 64-bit but would actually install 32-bit toolchains by default. - #2186
    • Increased width of copy box on rustup website - #2208
    • When updating a toolchain, indicate the version you updated from as well. - #2152
    • โšก๏ธ When installing atop an existing rustup installation, we will now update the installed default toolchain, particularly we'll also try and install any additional targets or components specified - #2201 and #2339
    • ๐Ÿ›  Fixed issue where rustup doc wouldn't work with custom toolchains - #2235
    • In low-memory situations, attempt to unpack more conservatively - #2236
    • ๐Ÿ‘Œ Improved consistency in where rustup will auto-install a toolchain on use. - #2252
    • Try to force strong cipher suites in - #2287
    • When skipping a nightly indicate all the missing components - #2316
    • โฑ Increase timeout for rename retries - #2348
    • Increased 'sanity limit' to account for MIPS binary size increases - #2363
    • Fallback to non-threaded installation pathway on 1-CPU systems to improve chance that installation will succeed on Raspberry Pi - #2372

    โž• Added

    • It is now possible to install rustup even when there's an existing installation, and we can install alongside rustc or cargo without necessarily forcing via -y by means of the RUSTUP_INIT_SKIP_EXISTENCE_CHECKS environment variable. - #2214
    • Added the concept of a fallback settings file which will allow snaps, distro packages, etc. to provide a default toolchain for users who have not passed through the rustup-init managed one-time question set. - #2244
    • You can now specify multiple components in a single argument in the form --component rls,rust-analysis,rust-src when installing toolchains - #2239
    • It is now possible to snap install --classic rustup in theory (channel details may take some time to settle) - #1898
    • โž• Added indication of why overrides are happening when running rustup show - #2312
    • โž• Added riscv64gc-unknown-linux-gnu support (note: There is still work to be done on the compiler etc before this will necessarily work) - #2313


    • Alejandro Martinez Ruiz
    • Alexander D'hoore
    • Ben Chen
    • Chris Denton
    • Daniel Silverstone
    • Evan Weiler
    • Guillaume Gomez
    • Harry Sarson
    • Jacob Lifshay
    • James Yang
    • Joel Parker Henderson
    • John Titor
    • Jonas Platte
    • Josh Stone
    • Jubilee
    • Kellda
    • LeSeulArtichaut
    • Linus Fรคrnstrand
    • LitoMore
    • LIU An (ๅŠ‰ๅฎ‰)
    • Luciano Bestia
    • Lzu Tao
    • Manish Goregaokar
    • Mingye Wang
    • Montgomery Edwards
    • Per Lundberg
    • Pietro Albini
    • Robert Collins
    • Rudolf B.
    • Solomon Ucko
    • Stein Somers
    • Tetsuharu Ohzeki
    • Tom Eccles
    • Trevor Arjeski
    • Tshepang Lekhonkhobe

    ๐Ÿš€ [1.22.0]: