Manajemen memori otomatis Rust mbebasake pangembang saka manipulasi pointer lan nglindhungi saka masalah sing muncul saka manipulasi memori tingkat rendah, kayata akses memori sawise-free, dereferensi null pointer, overruns buffer, lan liya-liyane. Pangatur paket dikembangake kanggo nyebarake perpustakaan, mesthekake perakitan lan ngatur dependensi dening proyek kasebut. Cargo, ngidini sampeyan entuk perpustakaan sing dibutuhake kanggo program ing siji klik. Repositori didhukung kanggo dadi tuan rumah perpustakaan peti.io.
Stabil sintaks pemrograman bedo anyar adhedhasar fungsi "async", pamblokiran async move {... }, lan operator ".await", sing nggampangake nulis pawang sing ora ngalangi aliran printah utama. Dibandhingake karo API sing ditawakake sadurunge kanggo bedo I / O, async / .await mbangun prasaja mangertos, Highly diwaca, lan ngijini sampeyan kanggo ngleksanakake interaksi bedo Komplek nggunakake Techniques kontrol aliran menowo adhedhasar puteran, statements kondisional, lan pangecualian.
Sintaks Async-await ngidini sampeyan nggawe fungsi sing bisa ngaso eksekusi, bali kontrol menyang utas utama, lan banjur nerusake eksekusi saka ngendi padha mungkasi. Contone, jeda kuwi dibutuhake nalika ngolah I / O, ing ngendi karya liyane bisa ditindakake nalika nunggu potongan data sabanjure teka. Fungsi lan blok sing ditetepake kanthi "async fn" lan "async move" ngasilake sipat Future, sing nemtokake perwakilan komputasi asinkron sing ditundha. Sampeyan bisa langsung miwiti pitungan sing ditundha lan entuk asil nggunakake operator ".await". Ora ana tumindak sing dileksanakake utawa wis direncanakake nganti .await diarani, ngidini konstruksi nested Komplek bisa digawe tanpa overhead tambahan.
Stabil "#![fitur(bind_by_move_pattern_guards)]", ngidini panggunaan variabel kanthi jinis binding "obah"ing cithakan lan gunakake referensi kanggo variabel kasebut ing bagean "yen" saka ekspresi "match". Contone, konstruksi ing ngisor iki saiki diidini:
Indikasi diijini atribut nalika nemtokake paramèter fungsi, penutupan, lan penunjuk fungsi. Atribut kompilasi kondisional (cfg, cfg_attr) sing ngontrol diagnostik liwat lint (ngidini, ngelingake, nolak lan nglarang) lan atribut panggilan makro tambahan didhukung.
fn len(
#[cfg(windows)] slice: &[u16], // gunakake parameter ing Windows
#[cfg(not(windows))] slice: &[u8], // digunakake ing OS liyane
) -> gunakake {
slice.len()
}
Bebaya babagan masalah sing diidentifikasi nalika mriksa peminjaman variabel (pemeriksa pinjaman) nggunakake teknik NLL (Non-Lexical Lifetimes), dijarwakake menyang kategori kesalahan fatal. Elinga yen sistem verifikasi adhedhasar mekanisme anyar kanggo nganggep umur variabel sing dipinjam bisa ngenali sawetara masalah sing ora diweruhi dening kode verifikasi lawas. Amarga output kesalahan kanggo mriksa kasebut bisa mengaruhi kompatibilitas karo kode sing digunakake sadurunge, bebaya ditanggepi tinimbang kesalahan. Bebaya saiki wis diganti karo kesalahan nalika mlaku ing mode Rust 2018. Ing rilis sabanjure, output kesalahan uga bakal dileksanakake ing mode Rust 2015, sing pungkasane bakal nyingkirake pemeriksa utang lawas;
Atribut "const", sing nemtokake kemungkinan nggunakake ing konteks apa wae tinimbang konstanta, digunakake kanggo fungsi Vec :: new, String :: new, LinkedList :: new, str :: len, [T] :: len , str::as_bytes,
abs, wrapping_abs lan overflowing_abs;
Bagean anyar saka API wis ditransfer menyang kategori stabil, kalebu cara sing wis stabil
Pin::ke_inner, Instant::checked_duration_since and Instant::saturating_duration_since;
Ing compiler rustc, pesen diagnostik kalebu trimming buntut kode sing ora pas menyang terminal. Nyedhiyakake dhukungan tingkat katelu kanggo platform target
i686-unknown-uefi lan sparc64-unknown-openbsd. Tingkat katelu kalebu dhukungan dhasar, nanging tanpa tes otomatis lan publikasi bangunan resmi.