Jedinečný přístup programovacího jazyka Rust vede k lepšímu kódu s menšími kompromisy než C, C ++, Go a další jazyky, které pravděpodobně používáte. Rovněž se pravidelně aktualizuje, často každý měsíc.
Kam stáhnout nejnovější verzi Rust
Pokud již máte nainstalovanou předchozí verzi Rust přes rezavění
, můžete získat přístup k nejnovější verzi pomocí následujícího příkazu:
$ rustup aktualizace stabilní
Související video: Vývoj bezpečnějšího softwaru s Rustem
Rychle se rozjeďte s nováčkem Rustem, který je určen k vytváření rychlého softwaru na úrovni systému. Tento dvouminutový animovaný vysvětlovač ukazuje, jak Rust obchází otravné programovací problémy paměti a správy.
Nové funkce v Rust 1.48.0
Rust 1.48.0, který byl představen 19. listopadu 2020, nabízí snazší propojení v dokumentačním nástroji knihovny Rustdoc se syntaxí, která umožňuje Rustdoc vědět, když se vývojáři pokoušejí propojit s typem; Budou generovány adresy URL. Také ve verzi 1.48.0:
- Vývojáři mohou specifikovat
# {doc (alias = “”)]
na položky pro přidání aliasů hledání při vyhledávání v uživatelském rozhraní Rustdoc. - The
nebezpečný
klíčové slovo je nyní na modulech syntakticky povoleno. I když to stále sémanticky odmítáme, lze to nyní analyzovat pomocí procedurálních maker. - V kompilátoru
-C samostatný odkaz =
příznak kompilátoru je stabilizován. To říkárustc
zda propojit svůj vlastní běhový modul C a knihovny nebo se spolehnout na externí linker, který je najde. Toto je podporováno pouze nawindows-gnu
,linux-musl
, abyl jsem
platformy. - V knihovně
[T; N]: TryFrom
API je nyní stabilní. Vývojáři se pomocí něj mohou pokusit proměnit vektor v pole dané délky. V této verzi bylo také stabilizováno pět dalších API:slice :: as_ptr_range
,slice :: as_mut_ptr_range
,VecDeque :: make_contiguous
,budoucnost :: čeká na vyřízení
, abudoucnost :: připraveno
. - Také v knihovně jsou nyní implementována všechna pole libovolné délky
TryFrom
.
Nové funkce v Rust 1.47.0
Rust 1.47.0, který byl oznámen 8. října 2020, nemá žádné nové jazykové funkce, ale vylepšuje standardní knihovnu. Ve verzi je uvedeno vylepšení kvality života a nástrojů, jakož i stabilizace knihoven. Byly zveřejněny poznámky k verzi pro upgrade.
Specifické funkce v Rust 1.47.0 zahrnují:
- Funkce „const generics“, která ovlivňuje vlastnosti na větších polích. Funkci je stále třeba stabilizovat. Rust postrádal způsob, jak být obecný nad celočíselnými hodnotami, což způsobilo problémy s poli. Tato funkce je určena k řešení tohoto problému a zvýšení užitečnosti polí.
- Upgrade na infrastrukturu kompilátoru LLVM 11, což z něj dělá výchozí.
- Kratší zpětné stopy, což usnadňuje hledání problémů.
rustc
nyní podporuje-C hlídač průtoku
, možnost, která zapne funkci zabezpečení Control Flow Guard v systému Windows. Ostatní platformy tento příznak ignorují.- Rustdoc nyní podporuje téma Ayu.
- Devět API ve standardní knihovně bylo stabilizováno: Ident :: new_raw, Range :: is_empty, RangeInclusive :: is_empty, Result :: as_deref, Result :: as_deref_mut, Vec :: leak, pointer :: offset_from, f32 :: TAU a f64 :: TAU.
Nové funkce v 1.46.0
Rust 1.46, oznámený 27. srpna 2020, obsahuje následující funkce:
- V systému lze nyní použít několik základních jazykových funkcí
const fn
, počítaje v to-li
,pokud nechám
,zápas
a několik dalších. - A
# [track_caller]
atribut, určený ke zlepšení chybových zpráv, kdyžrozbalit
a související funkce panika, je nyní stabilní. - Při změně knihovny
std :: mem :: zapomenout
je nyníconst fn
. Také v knihovně byly stabilizovány dvě nové API:Možnost :: zip
avec :: Drain :: as_slice
. - Pro kompilátor je
citylib
target lze použít na platformách Apple iOS a tvOS. - Rekurzivní indexování do n-tic již nevyžaduje závorky.
Nové funkce v Rust 1.45.0
Rust 1.45, který byl oznámen 16. července 2020, obsahuje následující doplňky a vylepšení:
- Je nabízena oprava, která napraví dlouhodobou nezdravost při vrhání mezi celými čísly a plováky.
- Stabilizace je nabízena pro funkční procedurální makra ve výrazech, vzorech a příkazech. Rozšíření používání maker pomáhá s využitím webového rámce Rocket pro Rust.
- Několik knihovních API bylo stabilizováno, jako např
Arc :: as_ptr
,BTreeMap :: remove_entry
, aSpan :: resolved_at
. Celý seznam API najdete v blogu Rust.
Nové funkce v Rust 1.43.1
Tato bodová verze byla představena 7. května 2020, aby řešila dvě regrese zavedené ve stabilní verzi 1.43.0. Aktualizuje také verzi OpenSSL používanou správcem balíků Cargo. Mezi funkce patří:
- Rust 1.27 představil podporu pro detekci funkcí procesoru x86 ve standardní knihovně prostřednictvím
is_x86_feature_detected
makro. Z důvodu interního refaktoringu Rust 1.43.0 zabránil detekci funkcí, které zatím nelze použít ve stabilní verzi, přestože jejich detekce byla dříve povolena. Verze 1.43.1 tuto regresi opravuje. - Je opravena chyba
seznam nákladních balíků
příkaz. Rust 1.43 přerušil podporu pro výpis souborů obsažených v balíčcích publikovaných s Cargo, když byl spuštěn uvnitř pracovního prostoru se závislostmi na cestě nebo nepublikovanými verzemi. - OpenSSL, závislost na nákladu, byla aktualizována na 1.1.1g. OpenSSL vydal bezpečnostní zpravodaj, ale tým Rust nebyl schopen zahrnout opravu včas pro Rust 1.43.0. Tým nemá žádné důkazy o tom, že by tato chyba zabezpečení mohla ohrozit bezpečnost uživatelů Cargo.
Nové funkce v Rust 1.43.0
Rust 1.43.0, který byl ohlášen 23. dubna 2020, byl považován za poměrně malé vydání a nebyly představeny žádné hlavní funkce. Změny zahrnují:
- Vývojáři mohou použít
položka
fragmenty k interpolaci položek do těla souboruvlastnost
,impl
, aexterní
bloky. - Vylepšení typu kolem primitiv, odkazů a binárních operací bylo vylepšeno.
- Aby pomohla s integračním testováním, nastaví Cargo některé nové proměnné prostředí pro testy k vyhledání spustitelných souborů.
- V knihovně Rust mohou vývojáři přímo použít přidružené konstanty na plovácích a celých číslech, aniž by museli modul importovat. Také je tu nový
primitivní
modul, který reexportuje Rust primitivní typy, což je užitečné při psaní makra a vývojáři chtějí zajistit, aby typy nebyly zastíněny. - Několik API v knihovně bylo stabilizováno:
Once :: is_completed
,f32 :: LOG10_2
,f32 :: LOG2_10
,f32 :: LOG10_2
,f64 :: LOG10_2
,f64 :: LOG2_10
, aiter :: once_with
.
Nové funkce v Rustu 1.41
Nové funkce v Rust 1.38
Rust 1.38, vydaný v září 2019, obsahuje následující nové funkce a vylepšení:
- Správce balíků Cargo automaticky využije výhody zřetězené kompilace s Rustem 1.38. S pipeline kompilací kompilátor nepotřebuje závislosti plně sestavené při kompilaci přepravky. Vše, co je potřeba, jsou jejich metadata, například seznam typů závislostí. Metadata se vytvářejí na začátku procesu kompilace. Některé testy ukázaly zvýšení rychlosti kompilace o 10 až 20 procent pro optimalizované, čisté sestavení některých grafů přepravek.
- Podříznutí některých nesprávných použití
mem :: {unitialized, zeroed}
. S tímto vydáním poskytne kompilátor rustc vlákna pro úzkou třídu nesprávných inicializací pomocímem :: neinicializováno nebo mem :: vynulováno
. - Rozšíření
#[zastaralé]
atribut pro makra. Tento atribut umožnil autorům přepravek upozornit uživatele na to, že položka jejich přepravky má být v budoucí verzi zastaralá a odstraněna. - Vývojáři mohou použít
std :: any :: type_name
získat název typu. - Stabilizace řady funkcí včetně
::obsazení
a::obsazení
.
Nové funkce v Rust 1.37
Rust 1.37, vydaný v srpnu 2019, má následující nové funkce a vylepšení:
- Schopnost odkazovat
výčet
varianty ažtyp
. Vývojáři také mohou odkazovat navýčet
varianty sVlastní :: Varianta
. - The
prodejce nákladu
příkaz, dříve samostatná bedna, je nyní zabudován do jazyka. Příkaz načte závislosti projektu, rozbalí je do dodavatele/ adresář a zobrazí fragment konfigurace potřebný k použití dodaného kódu během sestavení. - The
rustc
překladač podporuje profilovou optimalizaci, optimalizační techniku pro kompilátory předem, prostřednictvím-C generování profilu
a-C použití profilu
. - Vývojáři mohou vytvářet nepojmenované
konst
položky.
Nové funkce v Rust 1.36
Verze 1.36 programovacího jazyka Rust systems byla vydána v červenci 2019. Rust 1.36 obsahuje následující nové funkce a vylepšení:
- Vlastnost Future, používaná k deklarování asynchronní práce, je nyní stabilní. Asynchronní operace v Rustu se nyní v několika verzích scházejí po kouscích, s
asynchronní
ačekat
jako poslední důležité zbývající kousky. - Alloc bedna, používaná pro správu paměti, je nyní stabilní. Tato přepravka shromažďuje všechny kousky standardní knihovny Rust, které závisí na globálním mechanismu přidělování paměti, například
Vec
. Tímto způsobem mohou bedny, které nepoužívají standardní knihovnu, stále používat alokátor importem alloc samostatně - užitečné pro prostředí, kde chcete, aby velikost kódu byla co nejtenčí. - Nový typ,
MožnáUninit
, umožňuje definovat objekty, které se mohou skládat z neinicializované paměti, například líně přidělené pole. Rustův předchozí mechanismus, jak toho dosáhnout, byla funkce,mem :: neinicializováno
, což při běžném používání představovalo mnoho nebezpečí.MožnáUninit
poskytuje bezpečnější způsob, jak toho dosáhnout, který využívá omezení systému Rustova typu. - Non-lexikální životy, funkce pro nedávná vydání Rustu, byly zpětně přidány k dřívějším vydáním. Díky nelexickým životům je Rustův mechanismus kontroly půjček méně obtížný (v podstatě vám umožňuje psát širší škálu programů, které jsou stále platné Rust) a lépe dokáže zachytit problémy, které kontrole půjček chyběly.
Další vylepšení:
- Nová implementace pro
HashMap
typ, který běží rychleji a využívá méně paměti. - Náklad může nyní v případě potřeby běžet zcela offline.
Nové funkce v Rustu 1.35
Verze 1.35, vydaná v květnu 2019, nabízí následující: