közzétett rendszer programozási nyelv kiadása Rozsda 1.40a 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áadtuk a szerkezetek (struct) és felsorolások (enum és Variant blokk) megjelölésének képességét a " attribútummal#[nem_kimerítő]", melyik lehetővé teszi a jövőben adjon hozzá új mezőket és opciókat a deklarált struktúrákhoz és felsorolásokhoz. Például a nyilvánosan deklarált mezőket tartalmazó struktúrákkal rendelkező modulok fejlesztői a "#[non_exhaustive]" használatával jelölhetik meg azokat a struktúrákat, amelyekhez a jövőben új mezőket adnak hozzá. Eddig ebben a helyzetben a fejlesztő kénytelen volt választani a mezők privát deklarálása és a mezők megváltoztathatatlan listájához való kötődés között. Az új attribútum megszünteti ezt a korlátozást, és lehetővé teszi új mezők hozzáadását a jövőben anélkül, hogy fennállna a korábban lefordított külső kód feltörése. A ládacsomagokban a „match” szakasz opcióinak egyeztetésekor a „_ => {...}” maszk explicit definíciója szükséges, amely lefedi a lehetséges jövőbeli mezőket, különben hiba jelenik meg új mezők hozzáadásakor.
Hozzáadva az eljárási makró mac!() típuskontextusban való meghívásának képessége. Például most beírhatja a következőt: „type Foo = expand_to_type!(bar);”, ha a „expand_to_type” eljárási makró.
Az "extern { ... }" blokkban tette hozzá eljárási és attribútummakrók használatának képessége, beleértve a „bang!()” makrókat, például:
Makrókban végrehajtva „macro_rules!” elemek létrehozásának képessége. "macro_rules!" generálása függvényszerű makrókban („mac!()”) és attribútumok formájában („#[mac]”) lévő makrókban is lehetséges.
A $m:meta leképezési elemben tette hozzá tetszőleges token felsorolási értékek ("[TOKEN_STREAM]", "{TOKEN_STREAM}" és "(TOKEN_STREAM)") támogatása, például:
Rust 2015 módban a hibakimenet engedélyezve van a változók kölcsönzésének (kölcsönzés-ellenőrző) NLL (Non-Lexical Lifetimes) technikával történő ellenőrzése során azonosított problémák esetén. Korábban a figyelmeztetéseket hibák váltották fel Rust 2018 módban.
Miután a változást kiterjesztették a Rust 2015 módra, a fejlesztők végre sikerült megszabadulni a régi kölcsönellenőrzőből.
Emlékezzünk vissza, hogy a kölcsönzött változók élettartamát figyelembe vevő új mechanizmuson alapuló ellenőrző rendszer lehetővé tette néhány olyan probléma azonosítását, amelyeket a régi ellenőrző kód nem vett észre. Mivel az ilyen ellenőrzések hibakimenete befolyásolhatja a korábban működő kóddal való kompatibilitást, kezdetben figyelmeztetéseket adtak ki hibák helyett.
A „const” attribútumot, amely meghatározza, hogy konstansok helyett tetszőleges környezetben használható-e, az is_power_of_two függvény (előjel nélküli egész számok esetén) használatos.
Az API új része átkerült a stabil kategóriába, beleértve a todo!() makrót és a slice::repeat, mem::take, BTreeMap::get_key_value, HashMap::get_key_value metódusokat.
Option::as_deref, Option::as_deref_mut, Option::flatten, UdpSocket::peer_addr, {f32,f64}::to_be_bytes, {f32,f64}::to_le_bytes,{f32,f64}::to_ne_32, f64}::from_be_bytes, {f32,f64}::from_le_bytes és {f32,f64}::from_ne_bytes.
A csomagkezelő rakományában végrehajtva gyorsítótárazott fordítói figyelmeztetések a lemezen. A "cargo metadata" opció hozzáadva a "cargo metadata" parancshoz--szűrő-platform", hogy csak a megadott célplatformhoz kötött csomagok jelenjenek meg a függőségi feloldás oszlopában. A http.ssl-version konfigurációs opció hozzáadva az érvényes TLS-verziók meghatározásához.
Lehetőséget adtunk a szakasz közzétételéredev-függőségek" a "verzió" kulcs megadása nélkül.
A rustc fordító harmadik szintű támogatást biztosít a thumbv7neon-unknown-linux-musleabihf, aarch64-unknown-none-softfloat, mips64-unknown-linux-muslabi64 és mips64el-unknown-linux-muslabi64 célplatformokhoz. A harmadik szint alapvető támogatást foglal magában, de automatikus tesztelés és a hivatalos buildek közzététele nélkül.