közzétett rendszer programozási nyelv kiadása Rozsda 1.42a Mozilla projekt alapította. A nyelv a biztonságos memóriakezelésre összpontosít, automatikus memóriakezelést biztosít, és biztosítja a magas párhuzamos munkavégzés elérését, miközben elkerüli a szemétgyűjtő és futásidejű.
A Rust automatikus memóriakezelése megszabadítja a fejlesztőt a mutatómanipulációtól, és megvédi az alacsony szintű memóriakezelésből eredő problémákat, mint például az utólagos memóriaelérések, a nulla mutatóhivatkozások, a puffertúllépések és hasonlók. Csomagkezelő fejlesztés alatt áll a könyvtárak terjesztésére, az összeállítás biztosítására és a függőségek projekt általi kezelésére. Szállítmány, amely lehetővé teszi, hogy egy kattintással megszerezze a programhoz szükséges könyvtárakat. Egy tárhely támogatott a könyvtárak fogadására ládák.io.
Hozzáadva a szeletek részeinek (dinamikus tömbök, szelet) illeszkedésére szolgáló sablonok támogatása. Korábban megengedett volt a pontos egyezés, de most már lehetőség van a ".." jelű konstrukciók használatára a tömb többi elemének lefedésére. Például:
fn foo(szavak: &[&str]) {
megfelelő szavak {
// ellenőrzi a tömb kezdő elemeit és figyelmen kívül hagyja
azokat követő elemek
["Hello", "World", "!", ..] => println!("Hello World!"),
// ellenőrzi az első két "Foo" és "Bar" elemet, a többi pedig nem fontos
["Foo", "Bar", ..] => println!("Baz"),
// mindent figyelmen kívül hagy, de az utolsó elemnek "!"-nek kell lennie.
[.., “!”] => println!(“!!!”),
// a kezdő szeletbe mindent beleírunk, kivéve az utolsó elemet, aminek „z”-nek kell lennie
[start @ .., "z"] => println!("a következővel kezdődik: {:?}", start),
// az utolsó szeletbe mindent belerakunk, kivéve az első elemet, ami „a” legyen.
["a", vége @ ..] => println!("vége: {:?}", vége),
rest => println!("{:?}", rest),
}
}
Hozzáadott egy új „egyezik!” makrót, amely egy kifejezést és egy mintát vesz be bemenetként, és az „igaz” értéket adja vissza, ha a minta egyezik a kifejezéssel. A sablon használhat „|” műveleteket és ha".
match self.partial_cmp(other) {
Néhány (kevesebb) => igaz,
_ => hamis,
}
egyezik!(self.partial_cmp(other), Some(Less))
let foo = 'f';
assert!(egyezik!(foo, ‘A’..=’Z’ | ‘a’..=’z’));
let bar = Néhány(4);
assert!(egyezik!(bar, Some(x) if x > 2));
Pánik üzenetek, ha nem megfelelően használják
Option és Result típusúak, most a sorszámokat jelenítik meg a problémás hívást kezdeményező kódra mutató hivatkozásokkal, nem pedig a libcore-ban a hívást megvalósító kódra mutató hivatkozásokkal. A változás például hatással van az Option::None feletti kibontásra és várakozásra, vagy összeomlik az unwrap_err, expect, expect_err és hasonló módszerek használatakor az Eredmény típusnál.
A Cargo csomagkezelő biztosítja a „proc_macro crate” automatikus helyettesítését az „extern” blokkba az eljárási makrókat tartalmazó csomagok esetében. Ez a változtatás lehetővé teszi a "use" direktíva eljárási makrókra történő alkalmazását anélkül, hogy a kódban meg kellene adni az "extern crate proc_macro;" kifejezést. Például, ha a program a „use proc_macro::TokenStream;” sort használja, akkor a kód továbbra is működni fog, ha az „extern crate proc_macro;” kikerül belőle.
A szabványos könyvtár képességei kibővültek. In iter::Empty tette hozzá Küldés és szinkronizálás támogatás bármely T értékhez.
Calls Pin::{map_unchecked, map_unchecked_mut} szállított attól, hogy típusértéket kelljen visszaadnia a "Sized" megvalósításhoz.
In io::Kurzor megvalósítani PartialEq és Eq. A „const” attribútum meghatározza a konstansok helyett bármilyen kontextusban való használat lehetőségét, alkalmazott a Layout::new metódushoz.
Az API új része átkerült a stabil kategóriába, beleértve a stabilizált CondVar::wait_while, CondVar::wait_timeout_while,
DebugMap::key, DebugMap::value,
ManuallyDrop::take,
ptr::slice_from_raw_parts_mut és ptr::slice_from_raw_parts.
Az Error::description metódus elavult.
Második szintű támogatást nyújtott az armv7a-none-eabi és riscv64gc-unknown-linux-gnu platformokhoz. A riscv64gc-unknown-linux-gnu platform szabványos könyvtárának támogatása biztosított.
Apple 32 bites platformok lefokozták a harmadik támogatási szintig, ami alaptámogatást jelent, de automatikus tesztelés és a hivatalos buildek közzététele nélkül. A támogatás leminősítése annak köszönhető, hogy az Apple már nem támogatja a 32 bites platformokat.