Mozilla's Rust programming language hit its 1.6 release late last week, with stabilizations that make it easier for developers to write the system-level software the language was originally designed for.
At the heart of Rust is
libcore, the platform-agnostic library that "[defines] the intrinsic and primitive building blocks of all Rust code," according to its description. For a long time,
libcore was unstable, and writing directly to it was not recommended. Instead, developers used the full standard library,
libstd, that sat on top of
Rust 1.6 locks down
libcore, and it's now possible to build an ecosystem of libraries around it, according to the release notes. However, writing actual applications that use
libcore is still a ways off and not likely to be a reality until another version comes along.
Rust's main attraction is that it allows close-to-the-metal software development, both for applications and operating systems. This domain has normally been the province of languages like C or C++, which provide a high degree of power and control, but put security at risk. By contrast, Rust enables low-level programming, but includes high-level controls over features like memory management.
The language had also been considered internally unstable, with many breaking changes between versions. Only a small cadre of faithful programmers were inclined to work with it. By locking down Rust's innards, Mozilla makes it more attractive for developers who want to write software in Rust, but don't want to worry about having their work break between language versions.
An earlier blog post from the team outlined ambitious goals for Rust in 2016. Among them were better integration with IDEs, incremental compilation (to speed development time), cross-compilation between platforms, and closer integration with other languages via a C-compatible API. None has come to fruition yet, although solidifying
libcore paves the way for many of them.
One of Rust's first practical applications has been rewriting parts of Mozilla's Firefox browser using the language. The fact that Rust is currently a moving target complicates matters -- for example, it's potentially difficult to reproduce builds -- so there's only minimal use of Rust in Firefox right now. Still, there's already a procedure for how to do this; a Mozilla development document provides basic notes for how to make it work during the build process.