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.

Piston – knihovna pro práci s 2D i 3D grafikou v Rustu

V dalším článku o jazyku Rust se seznámíme se základními koncepty, na nichž je postavena knihovna Piston. Ta umožňuje práci s 2D i 3D grafikou s využitím různých „backendů“, mezi něž samozřejmě patří i moderní OpenGL.

Doba čtení: 26 minut

Dyon: spojení předností Rustu a dynamicky typovaných programovacích jazyků (2.část)

I v dnešním článku budeme pokračovat v popisu neobvyklého jazyka Dyon s dynamickým typovým systémem. Zabývat se budeme zejména smyčkami ∃ (any) a ∀ (all), datovými typy Result a Option, zpracováním chyb a kontrolou životnosti objektů.

Doba čtení: 24 minut

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

Dnes se výjimečně nebudeme zabývat samotným Rustem, ale jazykem 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.

Doba čtení: 23 minut

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.

Doba čtení: 23 minut

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.

3. 8. 2017 0:00
Doba čtení: 22 minut

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.

Doba čtení: 22 minut

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.

Doba čtení: 19 minut

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).

Doba čtení: 20 minut

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ů.

Doba čtení: 20 minut

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.

Doba čtení: 24 minut

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.

Doba čtení: 24 minut

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í.

Doba čtení: 19 minut

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.

Doba čtení: 18 minut

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é.

Doba čtení: 19 minut

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).

Doba čtení: 20 minut

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.

Doba čtení: 21 minut

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í.

Doba čtení: 20 minut

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.

Doba čtení: 20 minut

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.

Doba čtení: 18 minut

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.

Doba čtení: 24 minut

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ů.

Doba čtení: 18 minut

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.

Doba čtení: 21 minut

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.

Doba čtení: 22 minut

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.

Doba čtení: 18 minut

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.

Doba čtení: 18 minut

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.

Doba čtení: 16 minut

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.

Doba čtení: 17 minut

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.

Doba čtení: 22 minut

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é.

Doba čtení: 18 minut

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ů.

Doba čtení: 19 minut