The Rust core team has announced the official roadmap for Rust in 2018, which brings productivity to the fore and targets four main domains: Web services, WebAssembly, CLI apps, and embedded devices.
The Rust 2018 roadmap is the result of a process started with the 2017 survey and an open call for contributions that ended up collecting nearly 100 blog posts from the community.
According to its roadmap, Rust 2018 will be released between August and September 2018 and will pursue one major goal: productivity. This means focusing on compiler performance, polishing a number of langauge features, and further advancing tooling, libraries, and documentation.
On the language front, Rust 2018 will stabilize a number of features that are currently available in nightly builds with various levels of maturity. Those include impl Trait
, macros 2.0, SIMD, generators, non-lexical lifetimes, some form of async/await
support, and a modules revamp. It is likely that Rust 2018 will not include (at least initially) other much awaited features such as generic associated types, impl
specialization, and const generics.
In addition to completing and polishing the language features mentioned above, work on the compiler will aim to improve incremental compilation and speed up from-scratch compilation. In this regard, incremental compilation will be pushed into earlier stages, while from-scratch compilation will benefit from parallelization and switching to MIR-only rlibs. Additionally, compiler diagnostics will be improved.
An important piece of Rust productivity is related to its library ecosystem, specifically to the quality and discoverability of crates. The Rust core team will support the community to create better crates by releasing the 1.0 version of the API Guidelines and evolve the existing Rust Cookbook into a tool to discover libraries.
As a final note, all work on the language, compiler, tools, and documentation will be driven by a number of use cases which fall into four main domains:
- Web services, which roughly corresponds to the domain where Rust has seen more adoption.
- WebAssembly, which is an area where large growth is foreseen. Rust aims to be the language of choice for Web Assembly by providing comprehensive tooling and library support for the
wasm32
target. - CLI apps, for which Rust has seen growing adoption in the last year thanks to its portability, reliability, and support for static binaries.
- Embedded devices, where Rust seems to have potential thanks to its promises in terms of safety and performance, but still needs a significant amount of work in terms of required language features.
There are a lot more details related to Rust evolution in 2018, and so do not miss the official roadmap.