Rust 1.6 delivers a solid core at last

Mozilla stabilizes core library set for the system-level programming language, allowing it to do more low-level work

Rust 1.6 delivers a solid core at last
Jgcastor (Creative Commons BY or BY-SA)

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 libcore.

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.

Copyright © 2016 IDG Communications, Inc.