Rust development in 2017 focused on a number of areas, including tooling, the library ecosystem, interoperability, and others with a common theme: increasing productivity, especially for newcomers to the language, writes Rust core team member Aaron Turon.
Learning curve
2017 saw a lot of effort on the part of the Rust community to reduce Rust’s learning curve. This included work on a number of books, such as The Rust Programming Language, Programming Rust, and Rust in Action. At the same time, many RFCs were discussed and implemented to smooth out rough edges across several language areas such as cover ownership, modules, the trait system, and more.
Tooling
On the tooling front, the Rust team worked on improving the edit-compile cycle by introducing a new check
subcommand in Cargo which does only the minimum work required to type check the current state. Even more significant to improve the edit-compile cycle is incremental compilation, which will be finally available in Rust 1.24 next February. As the following picture shows, incremental compilation should bring a 50+% speedup, with plans to further improve this result throughout the year.
In 2017, Rust also got official support in JetBrains’ IDEs, including IntelliJ IDEA, CLion, WebStorm, etc. For support in lightweight IDEs such as Visual Studio Code, Visual Studio, or Atom, Rust introduced its Rust Language Server (RLS). Scheduled for a 1.0 release in early 2018, the RLS provides code completion, find references, go to definition and other common IDE features.
Library ecosystem
The library ecosystem of a language is key for its productivity. A lot of work has gone into robust libraries creating server-side software, including support for futures, async operations, generators, and web frameworks such as Rocket and Gotham. A related effort aimed to ensure essential tasks are backed by 1.0-level crates is LibzBlitz, a collective review of a number crates whose results are fed back to the tracking system. According to Turon, while not all reviewed crates reached 1.0, most did, with the rest being very close to it.
Additionally, Crates.io gained categories in 2017 and now orders crates by the number of downloads in the last 90 days to make it easier for developers to find out what crates are good for a given purpose.
As a final note, writes Turon, the Rust roadmap for 2018 will be defined in the very near future. InfoQ will provide timely report on that process.