Hlavní navigace

Seriál Programovací jazyk Rust

Pro tvorbu důležitých aplikací se již několik desetiletí používají programovací jazyky C a C++. Některé problematické rysy C/C++ se snaží odstranit moderní programovací jazyk Rust.

Dyon: spojení předností Rustu a dynamicky typovaných programovacích ja­zyků

Dnes se výjimečně nebudeme soustředit na samotný Rust, ale na jazyk Dyon s dynamickým typováním, který byl vytvořen speciálně pro rustovský ekosystém a slouží mj. i jako jazyk vhodný pro použití s herním enginem Piston.

Pavel Tišnovský

Dnes 0:00
| 1

Užitečné nástroje pro programovací jazyk Rust: rustup a rust-clippy

Dnes se budeme věnovat popisu dvou užitečných nástrojů, které vývojáři používají prakticky denně. První slouží k rychlému přepínání mezi různými verzemi Rustu, druhý pak ve zdrojových kódech hledá potenciální problémy.

Pavel Tišnovský

10. 8. 2017 0:00
| 3

Programovací jazyk Rust: knihovna ndarray pro práci s n-rozměrnými poli (dokončení)

Popis možností velmi užitečné knihovny ndarray vytvořené v Rustu dnes dokončíme. Budeme se zabývat především různými způsoby aplikací funkcí na prvky polí, což je jedna z technik umožňujících vyhnout se nutnosti explicitního psaní programových smyček.

Pavel Tišnovský

3. 8. 2017 0:00

Programovací jazyk Rust: knihovna ndarray pro práci s n-rozměrnými poli (2)

Dnešní článek o programovacím jazyku Rust i o užitečných knihovnách připravených pro tento jazyk bude navazovat na předchozí část, protože se opět budeme zabývat knihovnou ndarray určenou pro práci s n-rozměrnými poli, samozřejmě včetně běžných vektorů a matic.

Pavel Tišnovský

27. 7. 2017 0:00

Rust: knihovna ndarray pro práci s n-rozměrnými poli

V dnešním článku o jazyku Rust a knihovnách, které pro tento jazyk vznikly, se budeme zabývat knihovnou určenou pro práci s n-rozměrnými poli, samozřejmě včetně běžných vektorů a matic. Tato knihovna se jmenuje příhodně ndarray.

Pavel Tišnovský

13. 7. 2017 0:00
| 7

Programovací jazyk Rust: rozhraní mezi Rustem a Pythonem (pokračování)

Navážeme na předchozí článek, v němž jsme si popsali základní způsob použití rozhraní mezi Pythonem a Rustem. Nejdříve si ukážeme předávání řetězců z Pythonu do Rustu i naopak a pak se zaměříme na předávání řezů (slices).

Pavel Tišnovský

29. 6. 2017 0:00
| 4

Programovací jazyk Rust: rozhraní mezi Rustem a Pythonem

V dnešním článku o jazyku Rust si ukážeme překlad zdrojového kódu Rustu do dynamické knihovny a taktéž to, jak se budou funkce Rustu volat z Pythonu. Při komunikaci mezi jazyky je samozřejmě nutné vyřešit několik problémů.

Pavel Tišnovský

22. 6. 2017 0:00 | Python
| 5

Programovací jazyk Rust: použití FFI při předávání struktur

Při popisu FFI jsme si již řekli, jak je možné do nativní céčkové knihovny předávat primitivní datové typy, řetězce i pole. Ještě nám však zbývá si popsat předávání záznamů čili struktur, jak hodnotou, tak i odkazem.

Pavel Tišnovský

15. 6. 2017 0:00

Programovací jazyk Rust: použití FFI pro volání funkcí z nativních knihoven (2. část)

Na předchozí článek navážeme, protože se budeme zabývat dalšími detaily technologie FFI. Řekneme si, jak sdílet pole s nativními knihovnami, a taky si ukážeme nastavení projektu spravovaného systémem Cargo při použití FFI.

Pavel Tišnovský

8. 6. 2017 0:00

Programovací jazyk Rust: použití FFI pro volání funkcí z nativních knihoven

V programovacím jazyku Rust se poměrně často setkáme se situacemi, v nichž je nutné použít nativní knihovny. V takovém případě se využívá FFI. Dnes si ukážeme, jak se funkce z nativních knihoven volají.

Pavel Tišnovský

1. 6. 2017 0:00

Ukazatele v Rustu aneb temná strana Síly 2

V dalším článku o jazyce Rust budeme pokračovat v popisu vlastností ukazatelů (pointerů), které sice v Rustu existují, ale jsou používány s mnohem menší frekvencí než například v jazyku C.

Pavel Tišnovský

25. 5. 2017 0:00
| 2

Ukazatele v Rustu aneb temná strana Síly

V jazyku Rust nalezneme kromě referencí, jejichž použití je kontrolované překladačem, i ukazatele (pointer). S nimi lze realizovat některé „triky“ známé z jazyků C a C++, ale některé operace jsou potenciálně nebezpečné.

Pavel Tišnovský

18. 5. 2017 0:00

Programovací jazyk Rust: spouštění nových procesů a komunikace s nimi

V další části seriálu o jazyku Rust si ukážeme, jak je možné spustit nový proces, předat mu argumenty, upravit proměnné prostředí a také to, jak lze s tímto procesem komunikovat přes vstupně/výstupní proudy (streamy).

Pavel Tišnovský

11. 5. 2017 0:00

Programovací jazyk Rust: práce s binárními soubory, serializace a deserializace

V další části seriálu o jazyku Rust se seznámíme se základními a prozatím velmi jednoduchými koncepty práce s binárními soubory a taktéž s problematikou serializace a deserializace dat s projektem bincode.

Pavel Tišnovský

4. 5. 2017 0:00

Programovací jazyk Rust: práce se soubory a se standardními proudy

Většina běžných aplikací potřebuje pracovat se soubory popř. se standardními vstupními a výstupními proudy. Proto se dnes seznámíme s některými základními traity a funkcemi, které se pro vstupně-výstupní operace používají.

Pavel Tišnovský

27. 4. 2017 0:00
| 5

Programovací jazyk Rust: jednoduchý server a klient komunikující přes TCP

Jednou ze zajímavých domén použití jazyka Rust mohou být serverové aplikace. Proto si v dnešní části seriálu ukážeme základní použití knihovních funkcí pro práci s TCP sockety, a to jak při implementaci serveru, tak i klienta.

Pavel Tišnovský

20. 4. 2017 0:00

Programovací jazyk Rust: binární halda, použití TCP

Poslední datovou strukturou ve standardní knihovně jazyka Rust je takzvaná binární halda, kterou si dnes podrobněji popíšeme. V závěru článku se navíc zmíníme o podpoře TCP v základní knihovně Rustu.

Pavel Tišnovský

13. 4. 2017 0:00
| 6

Programovací jazyk Rust: efektivní práce s prvky uloženými v kolekcích

Dnes dokončíme popis datových kolekcí ve standardní knihovně Rustu. Nejdříve si řekneme, jak efektivně pracovat s objekty uloženými v kolekcích a pak si popíšeme použití množin s uživatelsky definovanými strukturami.

Pavel Tišnovský

6. 4. 2017 0:00

Datové kolekce v programovacím jazyku Rust: množiny

Třetí skupinou datových kolekcí, které lze nalézt ve standardní knihovně jazyka Rust, jsou množiny (set). Podobně jako tomu bylo u map, jsou i množiny implementované dvěma způsoby – s použitím hešovacích tabulek a B-stromů.

Pavel Tišnovský

30. 3. 2017 0:00
| 8

Datové kolekce v programovacím jazyku Rust: mapy

Druhou skupinou datových kolekcí, které můžeme nalézt ve standardní knihovně programovacího jazyka Rust, jsou mapy (asociativní pole). První implementace je založena na hešovacích tabulkách, druhá implementace na B-stromech.

Pavel Tišnovský

23. 3. 2017 0:00
| 7

Datové kolekce v programovacím jazyku Rust

Při popisu standardní knihovny jazyka Rust nemůžeme vynechat datové kolekce a moduly určené pro práci s nimi. Mezi datové kolekce se řadí sekvenční typy, množiny a mapy.

Pavel Tišnovský

16. 3. 2017 0:00

Užitečné funkce a makra ze standardní knihovny Rustu

V dnešním článku se budeme zabývat funkcemi a makry ze standardní knihovny Rustu. Popíšeme si formátování zpráv, práci s proměnnými prostředí a zpracováním argumentů předaných na příkazovém řádku.

Pavel Tišnovský

9. 3. 2017 0:00
| 8

Reakce na chyby v programovacím jazyku Rust

V každém programu je nutné adekvátně reagovat na různé typy chyb. Programovací jazyk Rust nabízí dvě standardní metody reakcí na chyby: použití výjimek a oznámení o chybě s využitím návratové hodnoty.

Pavel Tišnovský

2. 3. 2017 0:00

Datový typ Option v programovacím jazyku Rust

V dalším článku o jazyku Rust si popíšeme práci s datovým typem Option, který se v programech poměrně často používá, protože zjednodušuje práci s „neexistujícími“ hodnotami, volitelnými parametry funkcí, volitelnými členy struktur atd.

Pavel Tišnovský

23. 2. 2017 0:00

Práce s makry v programovacím jazyku Rust

Důležitou součástí jazyka Rust je jeho systém maker umožňující zjednodušení zápisu některých konstrukcí. Oproti makrosystému známému z C či C++ je makrosystém v Rustu bezpečnější, což si ostatně ukážeme na několika příkladech.

Pavel Tišnovský

16. 2. 2017 0:00

Práce s vektory v programovacím jazyku Rust

Primitivní datový typ pole (array), s nímž jsme se seznámili minule, neumožňuje při běhu programu přidávat či ubírat prvky. Pokud je takové chování zapotřebí, lze namísto polí použít objekt typu Vec neboli vektor.

Pavel Tišnovský

9. 2. 2017 0:00
| 4

Práce s poli v programovacím jazyku Rust

V jedenácté části seriálu o programovacím jazyku Rust se budeme zabývat způsobem práce s poli, což je sice zdánlivě triviální téma, ovšem některé koncepty práce s poli jsou v Rustu specifické.

Pavel Tišnovský

2. 2. 2017 0:00

Práce s řetězci v programovacím jazyku Rust

V dnešním článku se budeme zabývat problematikou práce s řetězci. Nejedná se přitom o zcela triviální téma, protože práce s řetězci v Rustu se hned v několika ohledech odlišuje od ostatních céčkových programovacích jazyků.

Pavel Tišnovský

26. 1. 2017 0:00
| 5

Programovací jazyk Rust: vlákna a sdílení objektů mezi nimi

V deváté části seriálu o jazyku Rust se budeme zabývat prací s vlákny (threads), s čímž souvisí i sdílení objektů mezi vlákny. I v této oblasti programátorům pomáhá k tvorbě aplikací typový systém Rustu.

Pavel Tišnovský

17. 1. 2017 0:00
| 9

Správa paměti v programovacím jazyku Rust s počítáním referencí

Už jsme si ukázali alokaci objektů na haldě (heapu) s jejich automatickou dealokací ve chvíli, kdy objekt přestal být viditelný. Dnes si popíšeme další způsob, který spočívá v počítání referencí.

Pavel Tišnovský

10. 1. 2017 0:00
| 8