The Rust programming language continues under active development and is preparing for a 1.0 beta release by the end of the year. Rust is designed with a focus on systems programming and intends to provide the features of modern programming languages combined with the power of C/C++. Since its first appearance in 2012, the language has undergone rapid development as it has sought to implement features that include algebraic data types, closures, type inference, guaranteed memory safety, and a minimal runtime.
With the successful inclusion of the features, the team is now looking to map its route to its formal 1.0 release, and the ensuing language stability that this will provide. Niko Matsakis of the Rust team has provided some additional insight to these next few months and what they entail for the Rust project. As Matsakis states, there are a few big items slated for completion prior to the beta:
- Dynamically sized types: This extension to the type system allows us to uniformly handle types where the size is not known at compile time, such as an array type.
- Unboxed closures
- Associated types
- Where clauses
- Multidispatch traits
- Destructors
- Green threading
Beyond those, the stability dashboard for the standard library indicates a significant amount of code remains in flux—stable code is listed 2%, unstable at 12%, and 77% marked at experimental with the remainder either deprecated or unmarked. This should change significantly as the team takes stock of the current codebase and updates the dashboard.
As Rust nears 1.0, it will follow the familiar Chrome/Firefox release process of using nightly, beta, and release builds. The nightly builds are the most timely, but also the most unstable. Beta builds will be produced from the nightly build every 6 weeks. When deemed mature enough, a release build will produced from the beta build.
Those interested in trying out Rust can easily do so using prebuilt packages for Linux, Windows, and Mac OS X.