Dėl unikalaus „Rust“ programavimo kalbos požiūrio gaunamas geresnis kodas ir mažiau kompromisų nei „C“, „C ++“, „Go“ ir kitose tikriausiai naudojamose kalbose. Ji taip pat atnaujinama reguliariai, dažnai kas mėnesį.
Kur atsisiųsti naujausią „Rust“ versiją
Jei jau turite ankstesnę „Rust“ versiją, įdiegtą per surūdijimas
, galite pasiekti naujausią versiją naudodami šią komandą:
$ rustup atnaujinimas stabilus
Susijęs vaizdo įrašas: saugesnės programinės įrangos kūrimas naudojant „Rust“
Greitai paspartinkite naujoką „Rust“, skirtą sukurti greitą, sistemos lygio programinę įrangą. Šis dviejų minučių animacinis paaiškinimas parodo, kaip „Rust“ aplenkia nemalonius atminties ir valdymo programavimo klausimus.
Naujos „Rust 1.48.0“ funkcijos
Pristatytas 2020 m. Lapkričio 19 d., „Rust 1.48.0“ turi paprastesnį susiejimą „Rustdoc“ bibliotekos dokumentavimo įrankyje su sintakse, kad „Rustdoc“ žinotų, kai kūrėjai bando susieti su tipu; Bus sugeneruoti URL. Taip pat 1.48.0 versijoje:
- Kūrėjai gali nurodyti
# {doc (alias = “”)]
ant elementų, kad pridėtumėte paieškos pseudonimus ieškodami per „Rustdoc“ vartotojo sąsają. -
nesaugus
raktinis žodis dabar sintaksiškai leidžiamas moduliuose. Nors tai vis dar atmetama semantiškai, tai dabar galima analizuoti procedūrinėmis makrokomandomis. - Kompiliatoriuje
-C nuoroda-savarankiška =
kompiliatoriaus vėliava stabilizuota. Tai pasakorustc
ar susieti savo „C“ vykdymo laiką ir bibliotekas, ar pasikliauti išoriniu susiejimu juos rasti. Tai palaikoma tiklangai-gnu
,linux-musl
irwasi
platformos. - Bibliotekoje
[T; N]: Išbandykite
API dabar yra stabili. Kūrėjai gali naudoti jį bandydami paversti vektorių tam tikro ilgio masyvu. Taip pat šiame leidime stabilizavosi kitos penkios API:pjūvis :: as_ptr_range
,pjūvis :: as_mut_ptr_range
,VecDeque :: make_contiguous
,ateitis :: laukiama
irateitis :: pasirengusi
. - Taip pat bibliotekoje dabar įgyvendinami visi bet kokio ilgio masyvai
TryFrom
.
Naujos „Rust 1.47.0“ funkcijos
Paskelbta 2020 m. Spalio 8 d. „Rust 1.47.0“ neturi naujų kalbos funkcijų, tačiau patobulina standartinę biblioteką. Gyvenimo kokybė ir įrankių grandinės patobulinimai, taip pat bibliotekos stabilizavimas pateikiami leidime. Paskelbtos naujinimo pastabos.
Specifinės „Rust 1.47.0“ galimybės apima:
- Funkcija „const generics“, veikianti didesnių masyvų bruožus. Šią savybę dar reikia stabilizuoti. Rūdys neturėjo būdo būti bendruoju lygiu sveikųjų skaičių reikšmėms, o tai sukėlė problemų su masyvais. Ši galimybė skirta šiai problemai spręsti ir masyvams padaryti naudingesniais.
- Atnaujinimas į LLVM 11 kompiliatoriaus infrastruktūrą, todėl jis yra numatytasis.
- Trumpesni atgaliniai pėdsakai, todėl lengviau rasti problemų.
rustc
dabar palaiko-C valdymo-srauto apsauga
, parinktis, kuri įjungs „Control Flow Guard“ saugos galimybes sistemoje „Windows“. Kitos platformos nepaiso šios vėliavos.- „Rustdoc“ dabar palaiko „Ayu“ temą.
- Devyni standartinės bibliotekos API buvo stabilizuoti: Ident :: new_raw, Range :: is_empty, RangeInclusive :: is_empty, Result :: as_deref, Result :: as_deref_mut, Vec :: nutekėjimas, pointer :: offset_from, f32 :: TAU ir f64 :: TAU.
Naujos 1.46.0 versijos funkcijos
„Rust 1.46“, paskelbta 2020 m. Rugpjūčio 27 d., Apima šias galimybes:
- Dabar galima naudoti keletą pagrindinių kalbos ypatybių
konst fn
, įskaitantjei
,jei leis
,rungtynės
ir keletas kitų. - A
# [track_caller]
atributas, skirtas pagerinti klaidų pranešimus, kaiišvynioti
ir su tuo susijusių funkcijų panika, dabar yra stabili. - Keičiantis bibliotekai,
std :: mem :: pamiršti
dabar yra akonst fn
. Be to, bibliotekoje buvo stabilizuotos dvi naujos API:Variantas: zip
irvec :: Drain :: as_slice
. - Kompiliatoriui
citylib
tikslą galima naudoti „Apple iOS“ ir „tvOS“ platformose. - Rekursyviai indeksuojant į rinkinius nebereikia skliaustų.
Naujos „Rust 1.45.0“ funkcijos
Paskelbta 2020 m. Liepos 16 d., „Rust 1.45“ apima šiuos papildymus ir patobulinimus:
- Siūloma pataisyti ilgalaikį nepagrįstumą, kai atliekami skaičiai tarp sveikųjų ir plūduriuojančių.
- Siūloma stabilizuoti funkcijų tipo procedūrines makrokomandas išraiškose, šablonuose ir teiginiuose. Išplėsti makrokomandų naudojimą galima naudojant „Rocket“ žiniatinklio sistemą „Rust“.
- Keli bibliotekos API buvo stabilizuoti, pvz
Lankas :: as_ptr
,BTreeMap :: remove_entry
irAtstumas :: išspręstas_at
. Visą API sąrašą galite rasti tinklaraštyje „Rust“.
Naujos „Rust 1.43.1“ funkcijos
Šis taškinis leidimas buvo pristatytas 2020 m. Gegužės 7 d., Siekiant išspręsti dvi regresijas, įvestas stabiliame 1.43.0 leidime. Jis taip pat atnaujina „OpenSSL“ versiją, kurią naudoja „Cargo“ paketų tvarkyklė. Įranga apima:
- Pristatė palaikymą x86 procesoriaus funkcijoms aptikti standartinėje bibliotekoje per
is_x86_feature_detected
makrokomanda. Dėl vidinio pertvarkymo „Rust 1.43.0“ neleido aptikti funkcijų, kurių dar negalima naudoti stabiliai, nors anksčiau jas nustatyti buvo leidžiama. Versija 1.43.1 nustato šią regresiją. - Siūloma pataisyti sugedusius
krovinių paketas - sąrašas
komandą. „Rust 1.43“ sugadino failų, įtrauktų į paketus, paskelbtus kartu su „Cargo“, sąrašų palaikymą, kai jie vykdomi darbo srityje su kelio priklausomybėmis arba nepaskelbtomis versijomis. - „OpenSSL“, priklausanti nuo krovinių, atnaujinta iki 1.1.1g. „OpenSSL“ išleido patarimą dėl saugumo, tačiau „Rust“ komanda negalėjo laiku įtraukti „Rust 1.43.0“ pataisos. Komanda neturi įrodymų, kad pažeidžiamumas gali pakenkti „Cargo“ naudotojų saugumui.
Naujos „Rust 1.43.0“ funkcijos
Paskelbta 2020 m. Balandžio 23 d. „Rust 1.43.0“ buvo laikoma gana nedideliu leidimu, be jokių pagrindinių funkcijų. Pakeitimai apima:
- Kūrėjai gali naudoti
elementą
fragmentai interpoluoti daiktus į kūnąbruožas
,impl
irišorinis
blokai. - Patobulintas tipo priminimas apie primityvus, nuorodas ir dvejetaines operacijas.
- Siekdamas padėti integracijos bandymams, „Cargo“ nustatys keletą naujų aplinkos kintamųjų bandymams, kad rastų vykdomuosius.
- „Rust“ bibliotekoje kūrėjai gali tiesiogiai naudoti susietas plūdurų ir sveikųjų skaičių konstantas, neimportuodami modulio. Be to, yra naujas
primityvus
modulis, kuris reeksportuoja primityvius „Rust“ tipus, kuris yra naudingas rašant makrokomandą, o kūrėjai nori užtikrinti, kad tipai nebūtų šešėliai. - Keli bibliotekos API buvo stabilizuoti:
Kartą: yra baigtas
,f32 :: LOG10_2
,f32 :: LOG2_10
,f32 :: LOG10_2
,f64 :: LOG10_2
,f64 :: LOG2_10
iriter :: kartą_su
.
Naujos „Rust 1.41“ funkcijos
Naujos „Rust 1.38“ funkcijos
„Rust 1.38“, išleistame 2019 m. Rugsėjo mėn., Yra šios naujos funkcijos ir patobulinimai:
- „Cargo“ paketų tvarkyklė naudos automatinį kompiliavimo naudą naudodama „Rust 1.38“. Kompiliatoriui kompiliatoriui nereikia visiškai sukonstruotų priklausomybių sudarant dėžę. Reikia tik jų metaduomenų, pavyzdžiui, priklausomybių tipų sąrašo. Metaduomenys rengiami ankstyvame rengimo procese. Kai kurie bandymai parodė, kad optimizuotų, švarių kai kurių dėžių diagramų sudarymo greitis padidėjo 10–20 proc.
- Neteisingas kai kurių neteisingų vaistų vartojimas
mem :: {unitialized, zeroed}
. Su šiuo leidimu „rustc“ kompiliatorius pateiks siaurą klaidingų inicializacijų klasęmem :: neinicijuota arba mem :: nulinė
. - Pratęsimas
# [nebenaudojamas]
atributas makrokomandoms. Šis atributas leido dėžučių autoriams pranešti vartotojams, kad jų dėžės elementas bus nebenaudojamas ir pašalinamas būsimame leidime. - Kūrėjai gali naudoti
standartinis :: bet koks :: tipo vardas
gauti tipo pavadinimą. - Daugelio funkcijų, įskaitant
:: aktoriai
ir:: aktoriai
.
Naujos „Rust 1.37“ funkcijos
Rust 1.37, išleista 2019 m. Rugpjūčio mėn., Turi šias naujas funkcijas ir patobulinimus:
- Gebėjimas nurodyti
enum
variantai pertipo
. Kūrėjai taip pat gali nurodytienum
variantai suAš: variantas
. -
krovinių pardavėjas
komanda, anksčiau buvusi atskira dėžė, dabar yra integruota į kalbą. Komanda gauna projekto priklausomybes, išpakuoja jas į pardavėją/ katalogą ir rodo konfigūracijos fragmentą, kurio reikia norint naudoti parduodamą kodą kuriant. -
rustc
kompiliatorius palaiko profiliu valdomą optimizavimą, optimizavimo metodiką, skirtą kompiliatoriams, anksčiau dirbantiems-C profilio generavimas
ir-C profilio naudojimas
. - Kūrėjai gali kurti neįvardytus
konst
daiktų.
Naujos „Rust 1.36“ funkcijos
„Rust“ sistemų programavimo kalbos 1.36 versija buvo išleista 2019 m. Liepos mėn. „Rust 1.36“ apima šias naujas funkcijas ir patobulinimus:
- Ateities bruožas, naudojamas asinchroniniam darbui deklaruoti, dabar yra stabilus. Asinchroninės „Rust“ operacijos jau kelios versijos sujungtos dalimis ir
asinchroninis
irlaukti
yra paskutiniai svarbūs likę kūriniai. - Paskyrimo dėžė, naudojama atminties valdymui, dabar yra stabili. Šis dėklas renka visus Rusto standartinės bibliotekos fragmentus, kurie priklauso nuo pasaulinio atminties paskirstymo mechanizmo, pvz
Vec
. Tokiu būdu dėžės, kuriose nenaudojama standartinė biblioteka, vis tiek gali naudoti paskirstytoją importuodami paskirstymą atskirai - tai naudinga aplinkoms, kuriose norite, kad kodų dydžiai būtų kuo mažesni. - Naujas tipas,
GalUninit
, leidžia apibrėžti objektus, kuriuos gali sudaryti neinicijuota atmintis, pvz., tingiai priskirtą masyvą. Ankstesnis Rusto mechanizmas tai padaryti buvo funkcija,mem :: neinicijuota
, kuris kasdieniniam naudojimui kėlė daugybę pavojų.GalUninit
pateikia saugesnį būdą tai padaryti, naudojant Rust tipo sistemos apribojimus. - Ne leksiniai gyvenimo laikotarpiai, naujausių „Rust“ leidimų bruožas, buvo paremti ankstesniais leidimais. Ne leksinis gyvenimas daro „Rust“ paskolų tikrinimo mechanizmą ne taip sunkiai veikiantį (iš esmės leidžia jums parašyti platesnį programų, kurios vis dar galioja „Rust“, asortimentą) ir geriau sugeba įveikti problemas, kurių paskolos tikrintojas praleido.
Kiti patobulinimai:
- Naujas programos
HashMap
tipas, kuris veikia greičiau ir naudoja mažiau atminties. - Dabar prireikus kroviniai gali būti vykdomi visiškai neprisijungus.
Naujos „Rust 1.35“ funkcijos
2019 m. Gegužės mėn. Išleistoje versijoje 1.35 siūloma: