Rust je svobodný víceúčelový, multiparadigmatický, kompilovaný programovací jazyk, vyvinutý organizací Mozilla Research. Je navržen jako „bezpečný, paralelní, praktický programovací jazyk“, podporující čistě funkcionální, imperativně-procedurální, strukturované a objektově orientované programovací styly.

Tento programovací jazyk pochází z osobního projektu zaměstnance Mozilly jménem Graydon Hoare. Mozilla začala sponzorovat tento projekt v roce 2009 a zveřejnila ho v roce 2010. Ten samý rok se práce posunuly z počátečního překladače (naprogramovaného v OCaml) do sebe-hostujícího překladače napsaného v Rustu. Tento, známý jako rustc, úspěšně přeložil sám sebe v roce 2011. rustc používá LLVM jako svůj back-end.

Prvně číslovaná před alfa vydání překladače Rust přišla v lednu 2012. Rust 1.0, první stabilní verze, byla vydána 15. května 2015. Při větších změnách s nekompatibilitami se vydává nová (2015, 2018, 2021 a 2024).

Třebaže byl vývoj sponzorován Mozillou, jde od počátku o projekt otevřeného software. Design tohoto jazyka byl vyladěn na základě zkušeností z programování jádra webového prohlížeče Servo a kompilátoru jazyka Rust. Velké množství příspěvků k designu pochází od členů komunity.

Design Cílem tvůrců Rustu je vytvořit jazyk vhodný pro vytváření vysoce paralelních a vysoce bezpečných systémů. Tento záměr byl základem pro návrh souboru vlastností, s důrazem na bezpečnost, kontrolu rozvržení paměti, a paralelizmu. Výkon Rustu je srovnatelný s výkonem C++.

Syntaxe Rustu je podobná syntaxi C a C++, s bloky kódu ohraničenými složenými závorkami, a řídícími klíčovými slovy programu jako if, else, while, a for. Ne všechna klíčová slova jazyků C a C++ jsou přítomna, zatímco některá další (jako například match pro vícenásobné skoky, podobné switch v jiných jazycích) byla zaměněna nebo přidána. Přes syntaktickou podobnost je Rust sémanticky velmi odlišný od C a C++.

Tento systém je navržen jako paměťově bezpečný, nepovolující ukazatele NULL a znemožňující neplatné ukazatele. Datové hodnoty mohou být inicializovány pouze několika pevnými způsoby, avšak všechny tyto způsoby vyžadují inicializovaný vstup. Životní cyklus ukazatelů a jejich neměnnost umožňuje kompilátoru předejít mnohým typům chyb, které jsou možné v C++, a to i při použití jeho inteligentního ukazatele.

Tento typový systém podporuje typ jménem trait, který je podobný typu třída. Trait je přímo inspirován jazykem Haskell. Jedná se o nástroj pro ad-hoc polymorfismus, čehož bylo dosaženo zákazem psaní deklarace proměnných. Další vlastnosti z jazyka Haskell, jako jsou higher-kinded polymorfismus (parametrický a podtypový polymorfismus), zatím nejsou podporovány.

Rust nepoužívá automatickou správu dat (garbage collection), jako je použita na platformách Java a .NET (mj. jazyky Java a C#), přesto je však jeho správa paměti bezpečná, snadná a nevyžadující přerušování běhu programu a sledování odkazů.

Rust umožňuje odvození typu ('type-inference') pro proměnné deklarované použitím klíčového slova let. Tyto proměnné, původně inicializované s cílem určit jejich typ, nevyžadují zachovat původně přidělenu hodnotu. Pokud kompilátor nenalezne na příslušné větvi proměnné přesnou hodnotu, kompilace končí chybou.

Funkce mohou používat generické parametry, ale ty musí být vázány traity. Neexistuje způsob, jak obejít signatury typů a přitom ve funkcích a operátorech využívat generické proměnné.

Objektový systém v Rustu je založen okolo implementací traitů a struktur. Jejich použití nahrazuje roli tříd v jiných (objektových) jazycích, a je definována klíčovým slovem impl. Dědičnost a polymorfizmus jsou poskytovány traity; umožňují je metody, které jsou definovány v mixinech k implementaci. Strukturované typy jsou použity pro definici členských proměnných. Implementace a traity nemohou definovat členské proměnné samy, a pouze traity mohou poskytovat dědičnost, aby nenastal diamantový problém jazyka C++.

Projekty v jazyce Rust

Operační systémy

Windows Mezi nejdůležitější projekty naprogramované v jazyce Rust patří operační systém Microsoft Windows, jehož části začala firma Microsoft do tohoto jazyka přepisovat, zejména z důvodu větší paměťové bezpečnosti výsledného kódu. Dalším pozitivním důsledkem přepisu je vyšší rychlost běhu. Parser fontů napsaný v Rustu zrychlil oproti verzi naprogramované v jazyce C++ o 5 až 15 %. Rust se také dostal do jádra tohoto systému. Některé knihovny Windows naprogramované v Rustu byly začleněny do programu Windows Insider a po odladění budou distribuovány uživatelům Windows. 10. května 2023 vyšla zpráva, že kód generovaný za pomoci jazyka Rust je obsažen v systému Windows, v programu Windows Insider.

Linux Počínaje verzí jádra 6.1 a dále ve verzi 6.3 a 6.4 operačního systému Linux je zaváděno používání jazyka Rust. Verze 6.14 přinese ještě lepší podporu Rustu a v něm napsaných ovladačů v jádře Linuxu. V Rustu psaný ovladač pro GeForce, Nova, má kromě hlavního správce z Red Hatu, jménem Danilo Krummrich, kolegu Alexandre Courbota z Nvidie. Ovladač má nahradit ovladač Nouveau.

FreeBSD 23. ledna 2024 vyšla zpráva o počínající diskuzi o použití programovacího jazyka Rust pro vývoj unixového operačního systému FreeBSD. Problém je zejména delší doba kompilace systému, ale na tom se také pracuje.

KataOS 14. října 2022 Google oznámil vývoj operačního systému KataOS a jeho referenční implementace Sparrow na základě mikrojádra seL4. KataOS je vyvíjený v programovacím jazyce Rust a je nadstavbou mikrojádra seL4.

Redox Přibližně od roku 2015 probíhá v programovacím jazyce Rust vývoj operačního systému Redox, který je koncipován jako mikrojádro unixového typu a je široce inspirován systémy jako seL4 a MINIX 3. Od verze 0.9.0 vydané 9. září 2024 přichází Redox s vylepšenou podporou multitaskingu a multithreadingu. Tato verze také přišla s vylepšenou portabilitou s linuxovými a BSD programy. Důležitá je podpora souborů COSMIC, editoru a terminálu z COSMIC desktopu.

Nástroje 26. ledna 2024 vyšly nástroje Uutils verze 0.0.24, které jsou náhradou za GNU Coreutils, ale v Rustu. Dále 9. března 2026 vyšly Rust Coreutils verze 0.7, také v Rustu, které se snaží o 100% kompatibilitu s GNU Test Suite a výkonové optimalizace. Tyto nástroje se mimo jiné snaží vylepšit kompatibilitu s GNU Coreutils.

Ubuntu nahradí klasické nástroje operačního systému pro práci se soubory, shellem a textem, jejich obdobami v jazyce Rust. Tento a další projekty mají za cíl nahradit klíčové nástroje důležité z hlediska bezpečnosti modernějšími, paměťově bezpečnějšími alternativami. Počínaje Ubuntu 25.10 chtějí vývojáři zvolit některé z těchto moderních implementací jako výchozí řešení.

Knihovny Šifrovací knihovna Rustls Šifrovací knihovna Rustls je zamýšlena jako moderní knihovna TLS, která je alternativou OpenSSL a BoringSSL, které překonává výkonem a i paměťovou bezpečností. Testy byly prováděny v říjnu 2024 na procesorech Intel Xeon se 6 jádry a zakázaným hyperthreadingem. Ve všech provedených testech Rustls své soupeře výkonově překonal. 28. listopadu 2024 byly provedeny další testy na 64bitových procesorech ARM Ampere Altra s 80 jádry, při nichž Rustls opět výrazně překonal OpenSSL a BoringSSL.

Komprimační a dekomprimační knihovna zlib-rs 25. února 2025 vyšla komprimační a dekomprimační knihovna zlib-rs ve verzi 4.2, která je v dekompresi i v řadě případů komprese výkonnější než její C-čková implementace a známá konkurence.

Grafická knihovna ZLUDA Grafická knihovna ZLUDA umožňuje spouštět na Radeonech aplikace napsané pro CUDA. Její autor Andrzej Janik ji vyvinul nejdříve pro grafickou platformu Intel a později, v roce 2022, pro grafické karty AMD Radeon za použití programovacího jazyka Rust. Práce na knihovně pro AMD byla ukončena, ale knihovna byla uvolněna pod duální licencí, a to Apache 2.0 a MIT.

Webové prohlížeče Programovací jazyk Rust je s výhodou využíván i při vývoji webových prohlížečů, kde pomáhá jeho bezpečnost a efektivita. Firma Google ohlásila 12. ledna 2023, že její webové prohlížeče Google Chrome a Chromium, budou podporovat začleňování kódu v jazyce Rust.

K dalším projektům patří vykreslovací jádro pro webové prohlížeče Servo, které vyvinula Mozilla a Samsung. V roce 2014 zvládl test Acid2 a byl výrazně rychlejší než jádro Firefoxu napsané v C++ (Gecko). Jeho vývoj nadále pokračuje.

Parser multimédií prohlížeče Firefox je také napsán v programovacím jazyce Rust.

Textový editor V programovacím jazyce Rust je od roku 2022 vyvíjen textový editor Helix, který lze používat i jako integrované vývojové prostředí (IDE). 3. ledna 2025 vyšla jeho verze 25.01.

Linkery

LLD Verze Rustu 1.90.0 z 18. září 2025 přináší pro uživatele Linuxu x86_64 linker LLD pro rychlejší linkování během procesu sestavování softwaru Rustem. Rust od této verze by tedy měl vést k výrazně rychlejšímu vývoji softwarem Rust.

Mold Rui Ueyama, vývojář rychlého linkeru Mold, hovořil na konferenci FOSDEM 2024. Je možné, že v brzké době bude moci Mold nahradit výchozí linker /usr/bin/ld, který je nyní (únor 2024) buď z GNU Binutils (ld.bfd), nebo z LLVM (lld).

Wild David Lattimore z Austrálie vytvořil v Rustu další rychlý linker, Wild, příbuzný linkeru Mold. Wild by měl být v Rustu a později by oproti Moldu měl přinést i inkrementální linkování.

23. září 2025 byl vydán Wild 0.6.0 a testy ukazují, že je 1,7× rychlejší než Mold a 2,3× rychlejší než LLD. Wild 0.6.0 zatím neumí například LTO a ani zmiňované inkrementální linkování, které by však mělo vše ještě dále zrychlit. Zdrojové kódy jsou na GitHubu s licencí Apache 2.0 a MIT.

Související projekty Corrode Existuje překladač (preprocesor) jménem Corrode podporovaný Mozillou, který překládá zdrojový kód z jazyka C do jazyka Rust. Řeší mj. překlad konstrukcí jazyka C s příkazem goto. Je napsán v Haskellu.

Ukázka kódu

Ukázka Hello world fn main() { println!("Hello, world"); }

Ukázka traitů trait MaObsah { fn obsah(&self) -> f64; }

struct Kruh { x: f64, y: f64, polomer: f64, }

impl MaObsah for Kruh { fn obsah(&self) -> f64 { std::f64::consts::PI * (self.polomer * self.polomer)

struct Ctverec { x: f64, y: f64, strana: f64, }

impl MaObsah for Ctverec { fn obsah(&self) -> f64 { self.strana * self.strana

fn vypis_obsah(tvar: impl MaObsah) { println!("Tento utvar ma obsah {}", tvar.obsah()); }

fn main() { let c = Kruh { x: 0.0f64, y: 0.0f64, polomer: 1.0f64,

let s = Ctverec { x: 0.0f64, y: 0.0f64, strana: 1.0f64,

vypis_obsah(c); vypis_obsah(s); }

Odkazy Reference

Externí odkazy

Eclipse Corrosion: the Eclipse IDE for Rust – Vývojové prostředí (IDE) pro Rust

Rust možná už v jádru 5.20 – na Root.cz Užitečné nástroje pro programovací jazyk Rust: rustup a rust-clippy – na Root.cz Seriál Programovací jazyk Rust – seriál na Root.cz Lepší du v Rustu dust – Root.cz Rust by Example Redox: A Rust-Written, Microkernel Open-Source OS Rust's 2018 roadmap – oficiální roadmapa Rustu 2018 Rust 1.18 má rychlejší kompilátor a vychází s druhou edicí oficiální knihy Corrode automaticky "zrezaví" kód z C do Rust Rust oficiálně ve Fedoře

Kategorie:Programovací jazyky Kategorie:Objektově orientované programování Kategorie:Multiparadigmatické jazyky Kategorie:Funkcionální jazyky Kategorie:Svobodný software Kategorie:Mozilla Kategorie:Software pod licencí MIT Kategorie:Multiplatformní software Kategorie:Software pod licencí Apache