The Rust teams having been working hard to implement features of the 2018 edition. Today we have reached an important milestone: we are announcing that we have an alpha-quality preview of the 2018 edition ready for testing and feedback.

The preview presents a great opportunity for those of you using the stable channel to switch to nightly and try out how it feels to code in the new edition, both to help us fix bugs and to provide feedback – positive and negative – on features. To get nightly, run rustup install nightly . If you’re already on the nightly channel, it’s likely that there’s no need to update the compiler.

As part of this preview, we have produced a first draft of the Edition Guide, which walks through the mechanics of editions, how to migrate your code, and all of the new features planned for Rust 2018.

While some major features intended for Rust 2018 have already stabilized, there are a number of remaining features that we’re particularly eager for feedback on:

Of course, we’re also keen to hear about your experience with newly stabilized features, including impl Trait, dyn Trait, slice patterns, and more.

The current Edition Preview is at alpha quality: it’s quite rough around the edges, but sufficiently feature-complete to get a feel for coding in the new edition. Some code will fail to migrate via rustfix today — in particular, rustfix generally does not work well with macro-generated code. We expect this experience to improve over time.

There are directions for migrating crates to the edition. The guide also contains a list of features currently part of the preview, with links to their tracking issues where you can leave feedback. If you have feedback about the edition in general, please open a thread on internals.rust-lang.org with the category set to Edition 2018 Feedback. A dedicated channel for discussion has been created on IRC (irc.mozilla.org), #rust-edition . Let us know what you think!

Unfortunately, this preview release doesn’t include a few features planned for Rust 2018. Some examples are below:

Expect to see follow-up announcements when these features are ready for alpha testing.