Přeskočit na hlavní obsah
Přeskočit hlavičku

Programování v Rustu

Typ studia navazující magisterské
Jazyk výuky čeština
Kód 460-4157/01
Zkratka PvR
Název předmětu česky Programování v Rustu
Název předmětu anglicky Programming in Rust
Kreditů 4
Garantující katedra Katedra informatiky
Garant předmětu Mgr. Ing. Michal Krumnikl, Ph.D.

Subject syllabus

Přednášky
- Správa Rust projektů (Cargo), proměnné, typový systém, výrazy
- Funkce, datové struktury (struktury a enumy), pattern matching, moduly
- Koncepty ownership, borrowing a lifetimes
- Základy standardní knihovny (řetězce, dynamické pole, hashovací tabulky), ošetření chyb, interior mutability
- Polymorfismus, koncept traits, generické programování, dynamic dispatch
- Funkcionální programování (iterátory, anonymní funkce)
- Využití knihoven (serializace, ošetření chyb, logování, parametry příkazové řádky atd.)
- Práce se sockety a síťové programování
- Vlákna, reference counting, synchronizační primitiva, paralelismus
- Neblokující operace, koncepty Pin a Future, asynchronní programování
- Tvorba maker, koncept unsafe
- Využití kódu napsaného v jiných programovacích jazycích (foreign function interface)

Cvičení
- Práce s nástrojem Cargo, nastavení IDE, proměnné, datové typy, výrazy
- Struktury a enumy, pattern matching, rozdělení programu do modulů
- Tvorba API pomocí konceptu ownership, seznámení se s konceptem borrow checkeru
- Využití standardní knihovny, ošetření chyb a krajních situací
- Tvorba polymorfního API pomocí traitů a generického programování
- Využití funkcionálního programování pomocí iterátorů a anonymních funkcí
- Použití externích knihoven z crates.io
- Tvorba síťové aplikace pomocí blokujících socketů
- Využití vláken a synchronizačních primitiv
- Tvorba síťové aplikace pomocí neblokujících socketů, práce s Futures a async/await
- Deklarativní a procedurání makra, využití bloku unsafe, seznámení s nástrojem miri
- Využití kódu v jazyku C nebo C++, implementace Python modulů pomocí Rustu

Literature

[1] KLABNIK, Steve and NICHOLS, Carol. The Rust Programming Language. 2018. No Starch Press.

Advised literature

[1] PALMIERI, Luca. Zero To Production In Rust. 2022. Independently published.
[2] GJENGSET, Jon. Rust for Rustaceans. 2021. No Starch Press.