közzétett rendszer programozási nyelv kiadása Rozsda 1.44a 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 megóvja a fejlesztőt a mutatók manipulálása során előforduló hibáktól, és védelmet nyújt az alacsony szintű memóriakezelés miatt felmerülő problémák ellen, mint például a memóriaterület elérése annak felszabadítása után, a nulla mutatók hivatkozásának megszüntetése, a puffertúllépések stb. A programkönyvtárak terjesztéséhez, az összeállítás biztosításához és a függőségek kezeléséhez a projekt csomagkezelőt fejleszt ki 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.
Az új kiadás bejelentésének szövegében a Rust fejlesztői belekeveredtek a politikába, és dacosan megtagadták a Rust 1.44 változásainak teljes áttekintését a rendőri erőszak elleni tiltakozókkal való szolidaritás jegyében, jelezve, hogy ez a kérdés fontosabb, mint a műszaki ismeretek cseréje. Fő innovációk:
A "cargo tree" parancs be van építve a Cargo csomagkezelőbe, amely egy faszerű függőségi grafikont jelenít meg. A "--duplicates" ("cargo tree -d") opció is hozzáadásra került, amely lehetővé teszi a függőségek kiértékelését ugyanazon csomag különböző verzióiban.
Az std-hez ("#![no_std]") nem kötött alkalmazásoknál az "async" függvényen, az async move { ... } blokkon és a ".await" operátoron alapuló aszinkron programozási módszerek támogatása valósul meg, ami megkönnyíti a nem blokkoló kezelők fő parancsfolyamának írását.
A bővíthető modulhierarchia-definíciós séma támogatása hozzáadásra került az elemzőhöz. Például a következő konstrukció nem fog hibát okozni a "foo/bar/baz.rs" modul tényleges hiánya ellenére (szemantikailag a konstrukció továbbra is érvénytelen, és hibát okozhat, de a változások láthatók és értelmezhetők makroszinten és feltételes fordításban):
#[cfg(FALSE)] mod foo {
mod bar {
modbaz;
}
}
A rustc fordító hozzáadta a "-C codegen-units" jelző használatának lehetőségét növekményes módban. A catch_unwind megvalósítását újratervezték, ami mostantól nem befolyásolja a teljesítményt, ha a letekercselési folyamat le van tiltva, és nincs kivétel.
Harmadik szintű támogatást biztosított az aarch64-unknown-none, aarch64-unknown-none-softfloat, arm64-apple-tvos és x86_64-apple-tvos platformokhoz. A harmadik szint alapvető támogatást jelent, de automatikus tesztelés és a hivatalos buildek közzététele nélkül.
Az API új része átkerült a stabil kategóriába, beleértve a stabilizáltat is
PathBuf::with_capacity,
PathBuf::kapacitás,
PathBuf::clear,
PathBuf::reserve,
PathBuf::reserve_exact,
PathBuf::shrink_to_fit,
{f32|f64}::to_int_unchecked,
Elrendezés::igazítás_hoz
Elrendezés::pad_to_align,
Elrendezés::tömb és
elrendezés::kiterjesztés.
A szabványos könyvtár kiterjesztett funkciói:
Hozzáadtuk a "vec![]" speciális változatát, amely közvetlenül tükröződik a Vec::new()-ban, lehetővé téve a "vec![]" kontextusban történő használatát konstansok helyett.
Jellemző megvalósítás (impl) hozzáadva a::Infallible konvertálásához Hash.
Az OsString intelligens mutatókat valósít meg DerefMut и IndexMut, a következőt adja vissza: "&mut OsStr".
A proc_macro::LexError megvalósítja az fmt::Display és Error funkciót.
A "const" attribútum, amely meghatározza a konstansok helyett tetszőleges kontextusban való használat lehetőségét, a from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes és to_ne_bytes metódusokban használatos minden egész típusra.
Támogatás hozzáadva a statikus könyvtárak generálásához ".a" formátumban a ".lib" formátum helyett a Windows GNU platformokon.
Az LLVM minimális követelményeit LLVM 8-ra emelték.