Rust-ohjelmointikielen ainutlaatuinen lähestymistapa johtaa parempaan koodiin ja vähemmän kompromisseja kuin C, C ++, Go ja muut todennäköisesti käyttämäsi kielet. Se päivitetään myös säännöllisesti, usein kuukausittain.
Mistä ladata uusin Rust-versio
Jos sinulla on jo aikaisempi Rust-versio asennettuna ruostuminen
, pääset uusimpaan versioon seuraavalla komennolla:
$ rustup -päivitys vakaa
Liittyvä video: Turvallisempien ohjelmistojen kehittäminen Rustin kanssa
Nopea nopeasti uudella tulokkaalla Rust, joka on suunniteltu luomaan nopeita, järjestelmätason ohjelmistoja. Tämä kahden minuutin animoitu selitin osoittaa, kuinka Rust ohittaa muistin ja hallinnan tuskalliset ohjelmointikysymykset.
Rust 1.48.0: n uudet ominaisuudet
19. marraskuuta 2020 julkistettu Rust 1.48.0 sisältää helpomman linkityksen Rustdoc-kirjaston dokumentointityökalussa, ja syntaksin avulla Rustdoc saa tietää, kun kehittäjät yrittävät linkittää tyyppiin; URL-osoitteet luodaan. Myös versiossa 1.48.0:
- Kehittäjät voivat määrittää
# {doc (alias = “”)]
kohteisiin lisätäksesi hakunimeä, kun haet Rustdoc-käyttöliittymän kautta. -
vaarallinen
avainsana on nyt syntaktisesti sallittu moduuleissa. Vaikka tämä hylätään edelleen semanttisesti, se voidaan nyt jäsentää menettelymakroilla. - Kääntäjässä
-C-linkki itsenäinen =
kääntäjän lippu on vakiintunut. Tämä kertooruoste
linkitetäänkö oma C-ajonaika ja kirjastot vai luotetaanko ulkoiseen linkkiin niiden löytämiseen. Tätä tuetaan vainwindows-gnu
,linux-musl
jaolinko minä
alustoilla. - Kirjastossa
[T; N]: Kokeile
API on nyt vakaa. Kehittäjät voivat yrittää muuttaa vektorin tietyn pituiseksi taulukoksi. Myös tässä julkaisussa vakautettiin viisi muuta sovellusliittymää:siivu :: as_ptr_range
,siivu :: as_mut_ptr_range
,VecDeque :: make_contiguous
,tulevaisuus :: odottaa
jatulevaisuus :: valmis
. - Myös kirjastossa kaikki minkä tahansa pituiset taulukot toteutetaan nyt
Kokeile
.
Rust 1.47.0: n uudet ominaisuudet
Julkaistu 8. lokakuuta 2020, Rust 1.47.0: lla ei ole uusia kieliominaisuuksia, mutta se parantaa standardikirjastoa. Elämänlaatu ja työkaluketjun parannukset sekä kirjastojen vakauttaminen ovat esillä julkaisussa. Päivityksen julkaisutiedot on julkaistu.
Rust 1.47.0: n erityisiä ominaisuuksia ovat:
- "Const generics" -ominaisuus, joka vaikuttaa ominaisuuksiin suuremmissa matriiseissa. Ominaisuus on vielä vakautettava. Ruosteella ei ole ollut tapaa olla yleinen kokonaislukuarvojen suhteen, mikä on aiheuttanut ongelmia matriisien kanssa. Tämän ominaisuuden on tarkoitus käsitellä tätä ongelmaa ja tehdä matriiseista hyödyllisempiä.
- Päivitys LLVM 11-kääntäjäinfrastruktuuriin, mikä tekee siitä oletuksen.
- Lyhyemmät jälkijäljet, mikä helpottaa ongelmien löytämistä.
ruoste
tukee nyt-C-ohjaus-virtaussuoja
, vaihtoehto, joka kytkee Control Flow Guard -tietoturvaominaisuuden päälle Windowsissa. Muut alustat jättävät tämän lipun huomiotta.- Rustdoc tukee nyt Ayu-teemaa.
- Yhdeksän vakiokirjaston sovellusliittymää stabiloitiin: Ident :: new_raw, Range :: is_empty, RangeInclusive :: is_empty, Tulos :: as_deref, Tulos :: as_deref_mut, Vec :: vuoto, osoitin :: offset_from, f32 :: TAU ja f64 :: TAU.
1.46.0: n uudet ominaisuudet
Rust 1.46, joka ilmoitettiin 27. elokuuta 2020, sisältää seuraavat ominaisuudet:
- Useita ydinkielen ominaisuuksia voidaan nyt käyttää
const fn
mukaan lukienjos
,jos annetaan
,ottelu
ja useita muita. - A
# [track_caller]
attribuutti, joka on suunniteltu parantamaan virheilmoituksia, kunpura
ja siihen liittyvien toimintojen paniikki, on nyt vakaa. - Vaihdettaessa kirjastoon
vakio :: mem :: unohda
on nyt aconst fn
. Myös kirjastossa vakiintui kaksi uutta sovellusliittymää:Vaihtoehto :: zip
javec :: Tyhjennä :: as_slice
. - Kääntäjä,
citylib
Kohdetta voidaan käyttää Apple iOS- ja tvOS-alustoilla. - Rekursiivinen indeksointi tupliksi ei enää vaadi sulkeita.
Rust 1.45.0: n uudet ominaisuudet
Julkaistu 16. heinäkuuta 2020, Rust 1.45 sisältää seuraavat lisäykset ja parannukset:
- Korjausta tarjotaan korjaamaan pitkäaikainen epämiellyttävyys, kun heitetään kokonaislukuja ja kelluvia.
- Stabilointia tarjotaan funktiomaisille proseduraalisille makroille lausekkeissa, kuvioissa ja lauseissa. Makrojen käytön laajentaminen auttaa Rocket-verkkokehyksen käyttöä Rustille.
- Useat kirjaston sovellusliittymät on vakiintunut, kuten
Kaari :: as_ptr
,BTreeMap :: remove_entry
jaSpan :: ratkaistu_at
. Täydellinen sovellusliittymien luettelo löytyy Rust Blogista.
Rust 1.43.1: n uudet ominaisuudet
Tämä kohtajulkaisu otettiin käyttöön 7. toukokuuta 2020 käsittelemään kahta regressiota, jotka otettiin käyttöön vakaassa 1.43.0-julkaisussa. Se päivittää myös Cargo-paketinhallinnan käyttämän OpenSSL-version. Ominaisuuksia ovat:
- Rust 1.27 toi tuen x86 - suorittimen ominaisuuksien tunnistamiseen vakiokirjastossa
is_x86_feature_detected
makro. Sisäisen uudelleenrakentamisen takia Rust 1.43.0 esti sellaisten ominaisuuksien havaitsemisen, joita ei voida vielä käyttää vakaana, vaikka niiden havaitseminen oli aiemmin sallittua. Versio 1.43.1 korjaa tämän regression. - Korjausta tarjotaan rikkoutuneille
rahtipaketti - luettelo
komento. Rust 1.43 hajosi Cargon kanssa julkaistuihin paketteihin sisältyvien tiedostojen luettelointitukeen, kun se suoritettiin työtilan sisällä polun riippuvuuksilla tai julkaisemattomilla versioilla. - Cargo-riippuvuus OpenSSL on päivitetty arvoon 1.1.1g. OpenSSL oli julkaissut tietoturvatiedotteen, mutta Rust-tiimi ei pystynyt sisällyttämään korjausta ajoissa Rust 1.43.0: een. Tiimillä ei ole todisteita siitä, että haavoittuvuus voisi vaarantaa Cargon käyttäjien turvallisuuden.
Rust 1.43.0: n uudet ominaisuudet
Ilmoitettiin 23. huhtikuuta 2020, Rust 1.43.0: ta pidettiin melko vähäisenä julkaisuna, eikä merkittäviä ominaisuuksia esitelty. Muutokset sisältävät:
- Kehittäjät voivat käyttää
kohde
fragmentit interpoloida kohteet runkoonpiirre
,impl
jaulkoinen
lohkot. - Primitiivien, viitteiden ja binaaritoimintojen ympärillä tehtyä tyyppipäätelmää parannettiin.
- Integrointitestauksen helpottamiseksi Cargo asettaa testeille uusia ympäristömuuttujia suoritettavien tiedostojen löytämiseksi.
- Rust-kirjastossa kehittäjät voivat käyttää niihin liittyviä vakioita float- ja kokonaislukuissa suoraan ilman, että heidän tarvitsee tuoda moduulia. Lisäksi on olemassa uusi
primitiivinen
moduuli, joka vie uudelleen Rust-primitiiviset tyypit, mikä on hyödyllinen makroa kirjoitettaessa ja kehittäjät haluavat varmistaa, että tyypit eivät ole varjossa. - Useat kirjaston sovellusliittymät stabiloitiin:
Kerran :: is_completed
,f32 :: LOG10_2
,f32 :: LOG2_10
,f32 :: LOG10_2
,f64 :: LOG10_2
,f64 :: LOG2_10
jaiter :: kerran
.
Rust 1.41: n uudet ominaisuudet
Rust 1.38: n uudet ominaisuudet
Rust 1.38, julkaistu syyskuussa 2019, sisältää seuraavat uudet ominaisuudet ja parannukset:
- Cargo-paketinhallinta hyödyntää putkilinjan kokoamista automaattisesti Rust 1.38: n kanssa. Putkilinjaisen kääntämisen yhteydessä kääntäjä ei tarvitse täysin rakennettuja riippuvuuksia laatikkoa koottaessa. Tarvitaan vain heidän metatietoja, kuten luettelo riippuvuustyypeistä. Metatiedot tuotetaan varhaisessa vaiheessa kokoamisprosessia. Jotkut testit ovat osoittaneet, että kokoamisnopeus kasvaa 10-20 prosenttia joidenkin laatikkokaavioiden optimoiduille, puhtaille koontiversioille.
- Laminointi joidenkin väärän käytön
mem :: {yhtenäistetty, nollattu}
. Tämän julkaisun avulla rustc-kääntäjä antaa nukan kapealle luokalle virheellisiä alustuksia käyttäenmem :: alustamaton tai mem :: nollattu
. - Laajennus
# [vanhentunut]
attribuutti makroille. Tämä ominaisuus on mahdollistanut laatikkojen kirjoittajien ilmoittavan käyttäjille, että heidän laatikkonsa tuote poistetaan käytöstä ja poistetaan tulevassa julkaisussa. - Kehittäjät voivat käyttää
vakio :: mikä tahansa :: tyypin_nimi
saadaksesi tyypin nimen. - Useiden toimintojen vakauttaminen, mukaan lukien
::heittää
ja::heittää
.
Rust 1.37: n uudet ominaisuudet
Elokuussa 2019 julkaistulla Rust 1.37: llä on seuraavat uudet ominaisuudet ja parannukset:
- Kyky viitata
enum
vaihtoehtoja läpityyppi
. Kehittäjät voivat myös viitataenum
muunnelmatItse :: Vaihtoehto
. -
rahdin myyjä
komento, aiemmin erillinen laatikko, on nyt rakennettu kielelle. Komento noutaa projektiriippuvuudet ja purkaa ne toimittajalle/ hakemiston ja näyttää määrityskoodin, jota tarvitaan toimitetun koodin käyttämiseen rakennuksen aikana. -
ruoste
kääntäjä tukee profiiliohjattua optimointia, optimointitekniikkaa etukäteen tehtäville kääntäjille-C-profiilin luonti
ja-C-profiilin käyttö
. - Kehittäjät voivat luoda nimeämättömiä
vakio
kohteita.
Rust 1.36: n uudet ominaisuudet
Rust-järjestelmien ohjelmointikielen versio 1.36 julkaistiin heinäkuussa 2019. Rust 1.36 sisältää seuraavat uudet ominaisuudet ja parannukset:
- Asynkronisen työn julistamiseen käytetty Tulevaisuuden ominaisuus on nyt vakaa. Asynkroniset toiminnot Rustissa ovat tulleet yhteen paloina useissa versioissa nyt
asynkronoitu
jaodottaa
viimeiset tärkeät jäljellä olevat kappaleet. - Muistin hallintaan käytetty allokointilaatikko on nyt vakaa. Tämä laatikko kerää kaikki Rustin vakiokirjaston palaset, jotka riippuvat globaalista muistinjakomekanismista, kuten
Vec
. Näin laatikot, jotka eivät käytä vakiokirjastoa, voivat silti käyttää allokaattoria tuomalla varauksen erikseen - hyödyllistä ympäristöissä, joissa haluat koodikokojen olevan mahdollisimman pieniä. - Uusi tyyppi,
EhkäUninit
, avulla voit määrittää objektit, jotka voivat koostua alustamattomasta muistista, kuten laiskasti varattu taulukko. Rustin edellinen mekanismi tämän tekemiseen oli toiminto,mem :: alustamaton
, joka aiheutti monia vaaroja rennossa käytössä.EhkäUninit
tarjoaa turvallisemman tavan tehdä tämä käyttämällä Rustin tyyppisen järjestelmän rajoituksia. - Ei-leksikaaliset elinajat, joka on Rustin uusimpien versioiden ominaisuus, on tuettu takaisin aiempiin painoksiin. Ei-leksikaalinen elinaika tekee Rustin lainanvalvontamekanismista vähemmän vaikeaa työskennellä (lähinnä antaa sinun kirjoittaa laajemman valikoiman ohjelmia, jotka ovat edelleen voimassa Rust) ja pystyy paremmin tarttumaan ongelmiin, joista lainan tarkistaja puuttui.
Muut parannukset:
- Uusi toteutus
HashMap
tyyppi, joka toimii nopeammin ja käyttää vähemmän muistia. - Rahti voi nyt toimia täysin offline-tilassa tarvittaessa.
Rust 1.35: n uudet ominaisuudet
Toukokuussa 2019 julkaistu versio 1.35 tarjoaa seuraavat: