objavljeno izdanje sistemskog programskog jezika Rđa 1.43, osnovan od strane Mozilla projekta. Jezik se fokusira na sigurnost memorije, pruža automatsko upravljanje memorijom i pruža alate za postizanje visokog paralelizma zadataka bez korištenja sakupljača smeća i runtime.
Rust-ovo automatsko upravljanje memorijom oslobađa programera od manipulacije pokazivačem i štiti od problema koji proizlaze iz manipulacije memorijom na niskom nivou, kao što su pristupi memoriji nakon slobodne upotrebe, dereferenciranje nulte pokazivača, prekoračenje bafera i slično. Razvija se menadžer paketa za distribuciju biblioteka, osiguravanje sklapanja i upravljanje ovisnostima od strane projekta. teret, što vam omogućava da jednim klikom dobijete biblioteke potrebne za program. Podržano je spremište za hostiranje biblioteka crates.io.
Makroi pružaju mogućnost korištenja fragmenata elemenata kako bi ih pretvorili u kod za osobine (obilježja), implementacije (impl) ili vanjske blokove. Na primjer:
macro_rules! mac_trait {
($i:item) => {
osobina T { $i }
}
}
mac_trait! {
fn foo() {}
}
Dovest će do generacije:
osobina T {
fn foo() {}
}
Poboljšana detekcija tipa primitiva, referenci i binarnih operacija.
Na primjer, sljedeći kod, koji je prethodno izazvao grešku, sada će moći da se kompajlira (Rust sada ispravno određuje da 0.0 i &0.0 moraju biti tipa f32):
neka n: f32 = 0.0 + &0.0;
Nova varijabla okruženja CARGO_BIN_EXE_{name} je dodana u Cargo, koja se postavlja prilikom izrade integracijskih testova i omogućava vam da odredite punu putanju do izvršne datoteke definirane u “[[bin]]” dijelu paketa.
Ako je izjavama dozvoljeno korištenje atributa kao što je "#[cfg()]".
Biblioteka pruža mogućnost korištenja povezanih konstanti direktno za cjelobrojne i razlomke, bez uvoza modula. Na primjer, možete odmah napisati u32::MAX ili f32::NAN bez prethodnog navođenja “use std::u32” i “use std::f32”.
Dodat je novi modul primitivna, koji ponovo izvozi Rust primitivne tipove, na primjer kada trebate napisati makro i provjeriti da tipovi nisu skriveni.
Novi dio API-ja prebačen je u stabilnu kategoriju, uključujući stabilizirane
Jednom::is_completed,
f32::LOG10_2,
f32::LOG2_10,
f64::LOG10_2,
f64::LOG2_10 i
iter::once_with.