Rust 1.44 shines light on not-so-standard contexts and dependency visualisation

Rust 1.44 shines light on not-so-standard contexts and dependency visualisation

Without much promotion, the team behind programming language Rust has pushed version 1.44 of its project out of the door, offering users a new way to stay on top of dependencies and a slightly refactored compiler, amongst other things.

Rust 1.44 is a smaller release than usual, but gets rid of some older issues that might make the language more attractive for speciality use-cases. The new release, for example, finally allows using async and await in scenarios where crates are prevented from loading the standard library, which is something often done in embedded programming for example.

Other enhancements include a lint that warns users about unused braces and a change in outline module parsing, which leaves the loading and parsing of external module files to expansion. Meanwhile, Rust’s package manager Cargo has been fitted with a tree command, letting users print a tree graph of the dependencies of a crate or displaying dependencies on multiple versions of the same package. 

Developers who have already tried their hand at experimental APIs such as the PathBuf::clear, PathBuf::reserve, f32::to_int_unchecked, Layout::align_to, or Layout::extend will surely be pleased to hear that those along with a couple of others have been stabilised in Rust 1.44.

A couple of libraries have also been extended, which means Unicode 13 is now generally supported, Vec<T> implements From<[T;N]> with a maximum N of 32, IoSlice comes with a Copy function, and String includes From<&mut str>. Also vec![] can now be used in const contexts; convert::Infallible finally got an implementation of a Hash function; and “from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes, and to_ne_bytes methods are now const for all integer types.”

The language’s compiler saw some refactoring in catch_unwind and the addition of tier three support for aarch64-unknown-none, aarch64-unknown-none-softfloat, aarch64-apple-tvos, and x86_64-apple-tvos targets. It is now also meant to respect the -C codegen-units flag in incremental mode, which supposedly makes its behaviour easier to control.

Rust is a programming language focused on safety and performance, which was originally developed at Mozilla – mainly to offer a better alternative to C/C++ developers. Its main competitor nowadays is, however, Google’s Go. The latter language enjoys a certain popularity because of its use in containerisation projects Docker and Kubernetes. By comparison, Rust is probably best known for being used in Mozilla’s browser engine Servo, Cloudflare’s core edge logic, and Node.js package manager npm, which migrated its project to Rust from C.  

Rust has been awarded the title of “most loved programming language” of the Stack Overflow community five times and just recently made its way into the higher ranks of the TIOBE Programming Community Index, which is deemed another indicator of a language’s popularity.