Back to Home

Rust 1.23 Release

The Rust team is pleased to announce the new version of Rust: 1.23.0. Rust is a system programming language aimed at security · speed and parallel code execution. If you have installed ...

Rust 1.23 Release

Original author: The Rust Core Team
  • Transfer

The Rust team is pleased to announce the new version of Rust: 1.23.0. Rust is a system programming language aimed at security, speed and parallel code execution.


If you have a previous version of Rust installed, just upgrade to do:


$ rustup update stable

If you haven’t installed it yet rustup, you can install it from the corresponding page of our website. With the detailed release notes Rust 1.23.0 is available on GitHub.


What is included in the stable version 1.23.0


New Year, New Rust! Our first improvement is getting rid of redundant copies in some situations. With these changes, memory consumption rustcdecreased by 5-10%, but the results for your applications may vary.


The documentation team has come a long way to rustdocuse CommonMark . Prior to this, it rustdocdid not guarantee which markdown rendering engine he used. As part of this release, we are still visualizing the documentation with our previous engine - Hoedown - but at the same time we are also visualizing it with a CommonMark compatible engine, giving warnings for various results. We have not yet encountered situations where it would be impossible to change the syntax of a document so that it satisfies both engines at once. Guillaume Gomez, a member of the documentation team, wrote a note about this in his journal , which shows some common differences between engines and how to work around them.In a future release of CommonMark, the engine will be used by default. The warning appeared in the night version in May last year and has been enabled by default since October last year , so many packages (crates) have already fixed the problems encountered.


A little more about the documentation: historically, the Cargo documentation was a bit weird. Instead of being located at doc.rust-lang.org , it was located at doc.crates.io . This will change with this release : now you can find the Cargo documentation at doc.rust-lang.org/cargo . We will add a redirect from doc.crates.ioto this page. In addition, the documentation has been converted to our “book” format.


See the release notes for more details .


Stabilization of the standard library


Starting with Rust 1.0, there is a type (the trait) AsciiExt , which provides non-ASCII functionality for u8, char, [u8]and str. To use it, you had to write similar code:


use std::ascii::AsciiExt;
let ascii = 'a';
let non_ascii = '';
let int_ascii = 97;
assert!(ascii.is_ascii());
assert!(!non_ascii.is_ascii());
assert!(int_ascii.is_ascii());

In Rust 1.23, these methods are declared directly for types, so you no longer need to import the type. Thanks to our stability guarantees, this trait still exists, so if you want to support Rust versions below 1.23, you can write:


#[allow(unused_imports)]use std::ascii::AsciiExt;

... to suppress the corresponding warning. When you give up support for older versions of Rust, both lines can be deleted and everything will continue to work.


Also, several APIs were stabilized:



See the release notes for more details .


Cargo features


cargo checkcan now check your unit tests .


cargo uninstallcan now delete more than one package with one command .


See the release notes for more details .


Developers 1.23.0


A lot of people participated in the development of Rust 1.23. We could not have achieved this without each of you. Thank!


Authors of the translation: @ BORN2LOSE and ozkriff .

Read Next