Programmatūras valodas Rust unikālā pieeja nodrošina labāku kodu ar mazāk kompromisiem nekā C, C ++, Go un citas valodas, kuras jūs, iespējams, lietojat. Tas tiek regulāri atjaunināts, bieži katru mēnesi.
Kur lejupielādēt jaunāko Rust versiju
Ja jums jau ir instalēta iepriekšējā Rust versija, izmantojot sarūsējis
, varat piekļūt jaunākajai versijai, izmantojot šādu komandu:
$ rustup atjauninājums ir stabils
Saistītais video: drošākas programmatūras izstrāde ar Rust
Ātri apgūstiet jaunpienācēju Rust, kas paredzēts ātras, sistēmas līmeņa programmatūras izveidei. Šis divu minūšu animētais skaidrotājs parāda, kā Rust apiet nepatīkamos atmiņas un pārvaldības programmēšanas jautājumus.
Rust 1.48.0 jaunās funkcijas
Rust 1.48.0, kas tika atklāts 2020. gada 19. novembrī, piedāvā vieglāku sasaisti Rustdoc bibliotēkas dokumentācijas rīkā ar sintaksi, lai Rustdoc uzzinātu, kad izstrādātāji mēģina izveidot saiti ar tipu; Tiks ģenerēti vietrāži URL. Arī versijā 1.48.0:
- Izstrādātāji var norādīt
# {dok (alias = “”)]
uz vienumiem, lai pievienotu meklēšanas aizstājvārdus, veicot meklēšanu, izmantojot Rustdoc lietotāja saskarni. - The
nedrošs
atslēgvārds tagad sintaktiski ir atļauts moduļos. Lai gan tas joprojām tiek semantiski noraidīts, to tagad var parsēt ar procesuālajiem makro. - Kompilatorā
-C saite-pašpietiekama =
kompilatora karogs ir stabilizēts. Tas stāstarustc
vai saistīt savu C izpildlaiku un bibliotēkas, vai paļauties uz ārēju saiti, lai tos atrastu. Tas tiek atbalstīts tikai vietnēwindows-gnu
,linux-musl
, unbiju es
platformām. - Bibliotēkā
[T; N]: Izmēģiniet no
API tagad ir stabila. Izstrādātāji to var izmantot, lai mēģinātu pārvērst vektoru par noteikta garuma masīvu. Šajā laidienā stabilizējās arī piecas citas API:šķēle :: as_ptr_range
,šķēle :: as_mut_ptr_range
,VecDeque :: make_contiguous
,nākotne :: gaida
, unnākotne :: gatavs
. - Arī bibliotēkā tagad tiek ieviesti visi jebkura garuma masīvi
Izmēģiniet no
.
Rust 1.47.0 jaunās funkcijas
Paziņots par 2020. gada 8. oktobri, Rust 1.47.0 nav jaunu valodas funkciju, taču tas uzlabo standarta bibliotēku. Dzīves kvalitāte un rīku ķēdes uzlabojumi, kā arī bibliotēkas stabilizācija ir atspoguļota laidienā. Jaunināšanai ir publicētas piezīmes par izlaidumu.
Rust 1.47.0 īpašās iespējas ietver:
- Funkcija “const generics”, kas ietekmē lielāko masīvu iezīmes. Funkcija joprojām ir jāstabilizē. Rūsai trūkst iespēju būt vispārīgam attiecībā pret vesela skaitļa vērtībām, kas ir radījis problēmas ar masīviem. Šīs iespējas mērķis ir novērst šo problēmu un padarīt masīvus noderīgākus.
- Jauninājums uz LLVM 11 kompilatora infrastruktūru, padarot to par noklusējumu.
- Īsākas pēdas, kas atvieglo problēmu atrašanu.
rustc
tagad atbalsta-C vadības plūsmas aizsargs
, opcija, kas Windows ieslēgs Control Flow Guard drošības iespēju. Citas platformas ignorē šo karodziņu.- Rustdoc tagad atbalsta Ayu tēmu.
- Deviņi API standarta bibliotēkā tika stabilizēti: Ident :: new_raw, Range :: is_empty, RangeInclusive :: is_empty, Result :: as_deref, Result :: as_deref_mut, Vec :: noplūde, pointer :: offset_from, f32 :: TAU un f64 :: TAU.
Jaunās funkcijas 1.46.0
Rust 1.46, kas paziņots 2020. gada 27. augustā, ietver šādas iespējas:
- Tagad var izmantot vairākas pamata valodas funkcijas
const fn
, ieskaitotja
,ja ļaus
,spēles
un vairāki citi. - A
# [track_caller]
atribūts, kas paredzēts, lai uzlabotu kļūdu ziņojumus, kadatritināt
un ar to saistītās funkcijas panikā, tagad ir stabils. - Mainot bibliotēku,
std :: mem :: aizmirst
tagad ir aconst fn
. Arī bibliotēkā tika stabilizētas divas jaunas API:Opcija :: zip
unvec :: Drain :: as_slice
. - Sastādītājam:
citylib
mērķi var izmantot Apple iOS un tvOS platformās. - Rekursīvai indeksēšanai grupās vairs nav nepieciešamas iekavas.
Rust 1.45.0 jaunās funkcijas
Paziņots 2020. gada 16. jūlijā, Rust 1.45 ietver šādus papildinājumus un uzlabojumus:
- Tiek piedāvāts labojums, lai novērstu ilgstošu nepietiekamību, kad tiek izmantoti veseli skaitļi un pludiņi.
- Stabilizācija tiek piedāvāta funkcijām līdzīgiem procesuālajiem makro izteiksmēs, modeļos un paziņojumos. Makro izmantošanas paplašināšana palīdz izmantot Rocket tīmekļa sistēmu Rust.
- Vairākas bibliotēkas API ir stabilizētas, piemēram,
Loka :: as_ptr
,BTreeMap :: remove_entry
, unSpan :: atrisināts_at
. Pilns API saraksts ir atrodams Rust Blog.
Rust 1.43.1 jaunās iespējas
Šis izlaidums tika ieviests 2020. gada 7. maijā, lai risinātu divas regresijas, kas ieviestas 1.43.0 stabilajā laidienā. Tas arī atjaunina OpenSSL versiju, ko izmanto Cargo pakotņu pārvaldnieks. Funkcijas ietver:
- Rust 1.27 ieviesa atbalstu x86 procesora funkciju noteikšanai standarta bibliotēkā, izmantojot
is_x86_feature_detected
makro. Iekšējās pārstrukturēšanas dēļ Rust 1.43.0 neļāva atklāt funkcijas, kuras vēl nevar izmantot stabilā stāvoklī, lai gan to noteikšana iepriekš bija atļauta. Versija 1.43.1 nosaka šo regresiju. - Par salauztiem tiek piedāvāts labojums
kravas pakete - saraksts
komandu. Rust 1.43 pārtrauca atbalstu ar Cargo publicētajos paketēs iekļauto failu uzskaitījumam, ja to izpilda darbvietā ar ceļa atkarībām vai nepublicētām versijām. - Atkarība no kravas OpenSSL ir atjaunināta līdz 1.1.1g. OpenSSL bija izlaidusi drošības padomu, taču Rust komanda nespēja savlaicīgi iekļaut labojumu Rust 1.43.0. Komandai nav pierādījumu, ka ievainojamība varētu apdraudēt Cargo lietotāju drošību.
Rust 1.43.0 jaunās funkcijas
Paziņots par 2020. gada 23. aprīli, Rust 1.43.0 tika uzskatīts par diezgan nelielu izlaidumu, un netika ieviestas galvenās funkcijas. Izmaiņas ietver:
- Izstrādātāji var izmantot
lieta
fragmenti, lai interpolētu priekšmetusiezīme
,impl
, unārpuse
bloki. - Tika uzlabota tipa secināšana ap primitīviem, atsaucēm un binārām operācijām.
- Lai palīdzētu integrācijas testēšanai, Cargo testiem iestatīs dažus jaunus vides mainīgos, lai atrastu izpildāmos failus.
- Rust bibliotēkā izstrādātāji var tieši izmantot saistītās konstantes uz pludiņiem un veseliem skaitļiem, neimportējot moduli. Turklāt ir jauns
primitīvs
modulis, kas reeksportē Rust primitīvos veidus, kas ir noderīgi, rakstot makro, un izstrādātāji vēlas pārliecināties, ka veidi nav ēnoti. - Stabilizējās vairākas bibliotēkas API:
Vienreiz :: is_completed
,f32 :: LOG10_2
,f32 :: LOG2_10
,f32 :: LOG10_2
,f64 :: LOG10_2
,f64 :: LOG2_10
, uniter :: vienreiz_ ar
.
Rust 1.41 jaunās funkcijas
Rust 1.38 jaunās iespējas
Rust 1.38, kas izlaists 2019. gada septembrī, satur šādas jaunas funkcijas un uzlabojumus:
- Kravas paku pārvaldnieks izmantos automātiskas kompilācijas priekšrocības ar Rust 1.38. Izmantojot cauruļvadu kompilāciju, kompilatoram nav nepieciešamas pilnībā izveidotas atkarības, sastādot kastīti. Nepieciešami tikai viņu metadati, piemēram, atkarību veidu saraksts. Metadati tiek veidoti apkopošanas procesa sākumā. Daži testi ir parādījuši kompilācijas ātruma palielināšanos par 10 līdz 20 procentiem, lai optimizētu, tīru dažu kasti diagrammu veidojumus.
- Dažu nepareizu lietojumu
mem :: {unitialized, zeroed}
. Ar šo laidienu rustc kompilators nodrošinās pavedienu šaurai nepareizu inicializāciju klasei, izmantojotmem :: neinicializēts vai mem :: nulle
. - Programmas pagarināšana
# [novecojis]
atribūts makro. Šis atribūts ir ļāvis kastes autoriem paziņot lietotājiem, ka viņu redeļkastes vienums tiks novecojis un noņemts nākamajā laidienā. - Izstrādātāji var izmantot
std :: any :: type_name
lai iegūtu tipa nosaukumu. - Vairāku funkciju, tostarp
:: dalībnieki
un:: dalībnieki
.
Rust 1.37 jaunās iespējas
Rust 1.37, kas izlaists 2019. gada augustā, ir šādas jaunas funkcijas un uzlabojumi:
- Spēja atsaukties
enum
varianti cauritips
. Izstrādātāji var arī atsauktiesenum
varianti arSelf :: Variant
. - The
kravu pārdevējs
komanda, kas iepriekš bija atsevišķa kastīte, tagad ir iebūvēta valodā. Komanda ienes projekta atkarības, izpako tās pārdevējā/ direktoriju un parāda konfigurācijas fragmentu, kas nepieciešams, lai būvēšanas laikā izmantotu piegādāto kodu. - The
rustc
kompilators atbalsta ar profilu vadītu optimizāciju, optimizācijas paņēmienu, kas paredzēts kompilatoriem pirms laika-C profila ģenerēšana
un-C profila lietošana
. - Izstrādātāji var izveidot bez nosaukuma
konst
preces.
Rust 1.36 jaunās iespējas
Rust Systems programmēšanas valodas versija 1.36 tika izlaista 2019. gada jūlijā. Rust 1.36 ietver šādas jaunas funkcijas un uzlabojumus:
- Nākotnes iezīme, ko izmanto asinhronā darba deklarēšanai, tagad ir stabila. Asinhronās operācijas Rustā jau vairākas versijas ir apvienojušās pa daļām ar
asinhronais
ungaidi
ir pēdējie svarīgi atlikušie gabali. - Piešķiršanas kaste, ko izmanto atmiņas pārvaldībai, tagad ir stabila. Šajā kastē tiek apkopoti visi Rust standarta bibliotēkas fragmenti, kas ir atkarīgi no globālā atmiņas piešķiršanas mehānisma, piemēram,
Vec
. Tādējādi kastes, kas neizmanto standarta bibliotēku, joprojām var izmantot sadalītāju, atsevišķi importējot piešķīrumu - tas ir noderīgi vidēs, kur vēlaties, lai kodu izmēri būtu pēc iespējas mazāki. - Jauns veids,
Varbūt Uninit
, ļauj definēt objektus, kas var sastāvēt no neinicializētas atmiņas, piemēram, slinki piešķirtu masīvu. Rusta iepriekšējais mehānisms, kā to izdarīt, bija funkcija,mem :: neinicializēts
, kas ikdienas lietošanai radīja daudz bīstamības.Varbūt Uninit
nodrošina drošāku veidu, kā to izdarīt, izmantojot Rust tipa sistēmas ierobežojumus. - Leksiskās dzīves ilgums, kas ir Rust jaunāko izdevumu iezīme, ir atbalstīts iepriekšējos izdevumos. Ar ne-leksisku dzīves laiku Rust aizņemšanās pārbaudes mehānismu ir mazāk grūti strādāt (būtībā ļaujot jums uzrakstīt plašāku programmu klāstu, kas joprojām ir derīgas Rust), un tas labāk spēj noķert problēmas, kuras aizņēmuma pārbaudītājs palaida garām.
Citi uzlabojumi:
- Jauna programmas
HashMap
tips, kas darbojas ātrāk un patērē mazāk atmiņas. - Ja nepieciešams, kravas tagad var darboties pilnīgi bezsaistē.
Rust 1.35 jaunās iespējas
Versija 1.35, kas izlaista 2019. gada maijā, piedāvā: