Today we are excited to announce the release of Rust 1.0 beta! The beta release marks a very significant “state transition” in the move towards 1.0. In particular, with the beta release, all libraries and language features that are planned to be stable for 1.0 have been marked as stable. As such, the beta release represents an accurate preview of what Rust 1.0 will include.
To see what has changed since 1.0-alpha2, please see the release notes.
The Beta release also marks a turning point in our approach to stability. During the alpha cycle, the use of unstable APIs and language features was permitted, but triggered a warning. As of the Beta release, the use of unstable APIs will become an error (unless you are using Nightly builds or building from source).
The Rust ecosystem continues to grow. The crates.io repository just passed 1 million downloads and has over 1,700 crates available. Many of the top crates in crates.io can now be built using only stable Rust, and efforts to port the remainder are underway. Therefore, we are now recommending that new users start with the Beta release, rather than the Nightly builds, and the rustup script will be modified to install Beta by default. (However, it is easy to switch to the Nightly build if some of your dependencies aren’t updated yet. See the install page for details.)
What happens during the beta cycle?
The final Rust 1.0 release is scheduled for May 15th – exactly six weeks from now. In the interim, we expect to put most of our effort into fixing bugs, improving documentation and error messages, and otherwise improving the end-user experience. We don’t plan on making functional changes to stable content, though naturally we may make minor corrections or additions to the library APIs if shortcomings or problems are uncovered (but the bar for such changes is relatively high).
While we don’t expect to add any new features (or major new APIs) for the 1.0 release, that doesn’t mean we’re going to stop working on them altogether. In fact, quite the opposite! Per the train model, the plan is to continue development on new features on the master branch, in parallel with the beta. And of course, we’ll be issuing the beta for 1.1 release at the same time as we issue the final 1.0 release, so you shouldn’t have to wait long to start putting that work to use.
To help ensure that we don’t accidentally introduce breakage as we add new features, we’ve also been working on an exciting new CI infrastructure to allow us to monitor which packages are building with the Nightly builds and detect regressions across the entire Rust ecosystem, not just our own test base. This infrastructure is still in the development phase, but you can see a sample report here.
A community achievement
As always, this Rust release is the achievement of the fantastic Rust community at large. Thanks to everyone who has participated in the RFC process, and a particular thank you to the 170 contributors for this release:
Cody P Schafer
Daniel Lobato García
Felix S. Klock II
Gary M. Josack
Ivan Radanov Ivanov
Jessy Diamond Exum
Ruud van Asseldonk