Szkolenie: Rust - budowanie narzędzi CLI
Szkolenie Rust - budowanie narzędzi CLI to praktyczny kurs, który uczy budowy profesjonalnych aplikacji wiersza poleceń oraz narzędzi platformowych w języku Rust
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:2 dni (16h)
Kod kursu:RUST/CLI
Rust - budowanie narzędzi CLI
Cele szkolenia
Szkolenie przygotowuje do samodzielnego projektowania i implementowania narzędzi CLI w języku Rust z użyciem popularnych bibliotek takich jak clap oraz zgodnie z konwencjami Unix i POSIX
Szkolenie uczy budowy interaktywnych interfejsów terminalowych TUI w Rust z wykorzystaniem ratatui i crossterm, z naciskiem na ergonomię i UX CLI
Szkolenie pokazuje, jak dystrybuować narzędzia CLI w modelu cross-platform oraz integrować je z ekosystemem platform wewnętrznych i DevOps
Dla kogo?
Programistów posiadających praktyczną znajomość języka Rust, odpowiedzialnych za tworzenie narzędzi wewnętrznych oraz aplikacji CLI
Inżynierów platform oraz zespołów DevOps budujących Internal Developer Platforms i własne narzędzia do automatyzacji
Efekty kształcenia
Uczestnik projektuje i implementuje aplikacje CLI w Rust zgodnie z dobrymi praktykami ergonomii, standardami Unix oraz zasadami projektowania narzędzi developerskich
Uczestnik konfiguruje clap oraz config-rs w modelu 12-factor, obsługując flagi CLI, zmienne środowiskowe i pliki konfiguracyjne w aplikacjach Rust
Uczestnik buduje interaktywne interfejsy TUI w Rust z wykorzystaniem ratatui, crossterm oraz bibliotek dialoguer i indicatif, tworząc nowoczesne narzędzia terminalowe
Uczestnik dostarcza artefakty binarne CLI na wiele systemów operacyjnych i architektur, wykorzystując cross compilation oraz publikuje je w Homebrew, Winget i Scoop
Uczestnik projektuje rozszerzalne narzędzia CLI z wykorzystaniem architektury plugin opartej o WebAssembly oraz dynamiczne biblioteki w Rust
Wymagania
Praktyczna umiejętność programowania w języku Rust, znajomość modelu ownership, traits oraz obsługi błędów z Result
Podstawowa znajomość pracy z terminalem oraz systemami kontroli wersji
W cenie otrzymasz:
Materiały szkoleniowe
Certyfikat ukończenia szkolenia
W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Program szkolenia
Projektowanie narzędzi CLI w Rust
Ergonomia CLI i konwencje POSIX, GNU oraz docopt
Komendy, podkomendy, flagi, argumenty pozycyjne, flagi globalne
Obsługa błędów z Result, anyhow oraz thiserror, kody wyjścia
Obsługa sygnałów oraz anulowania z tokio::signal i ctrlc
Pliki konfiguracyjne, zmienne środowiskowe, precedencja w duchu 12-factor
Zapewnienie przewidywalnego wyjścia: human-readable, JSON, YAML, tabele
Obsługa kolorów z owo-colors i nu-ansi-term w duchu NO_COLOR oraz terminali bez wsparcia ANSI
clap i konfiguracja w praktyce
Struktura projektu opartego o clap, derive API kontra builder API
Podkomendy jako enum, walidacja argumentów, value parsers
Autocompletion dla bash, zsh, fish i PowerShell z clap_complete
Generowanie stron man oraz dokumentacji z clap_mangen
config-rs oraz figment: łączenie źródeł konfiguracji, dotenvy, serde
Sekrety i integracja z keyring oraz mechanizmami szyfrowania
Praca z plikami, stdin i pipe, integracja z narzędziami Unix
Interaktywne TUI z ratatui i crossterm
Model immediate-mode i pełne przerysowanie Frame w każdej klatce
Widgety: Block, List, Table, Paragraph, Chart, Gauge oraz wykresy
Layouty z Constraint i Direction, kompozycja widoków
Obsługa zdarzeń klawiatury i myszy, asynchroniczna pętla zdarzeń z tokio
Motywy kolorystyczne, dostępność oraz skróty w stylu vim i emacs
Paski postępu i spinnery z indicatif, prompty z dialoguer i inquire
Testowanie interakcji z TestBackend oraz snapshoty z insta
Dystrybucja, rozszerzalność i utrzymanie
Cross-compilation z cross oraz cargo-zigbuild, targets x86_64 i aarch64
Osadzanie zasobów przez rust-embed, include_str! oraz include_bytes!
cargo-dist i cargo-release: automatyzacja buildów, changelog, archiwa, checksums
Publikacja w kanałach Homebrew, Winget, Scoop, AUR, cargo install oraz obrazy Docker
Podpisywanie artefaktów z sigstore cosign oraz generowanie SBOM z cargo-auditable
Architektura plugin: wtyczki w WebAssembly z extism oraz dynamiczne biblioteki przez libloading
Mechanizmy self_update oraz kanały stable, beta i nightly
Wybrane opinie
Przeczytaj pozytywne opinie pochodzące z ankiet satysfakcji z naszych szkoleń wypełnianych wyłącznie przez ich uczestników po realizacji usługi

