# Hatch

> Rýchly správca závislostí a buildov pre Flutter napísaný v Ruste.

Hatch je nástroj príkazového riadka, ktorý číta malý manifest, paralelne rieši graf závislostí z pub.dev, ukladá ich do globálnej cache a pripína verziu Flutter SDK cez FVM. Je to jeden statický binárny súbor rozšíriteľný pluginmi, s licenciou MIT alebo Apache-2.0.

- Typ: Vlastný produkt
- Stav: Beta
- Platformy: Windows, macOS, Linux

## Odkazy

- [Web](https://tryhatch.dev)
- [Dokumentácia](https://tryhatch.dev/docs)
- [GitHub](https://github.com/mario-chamuty/hatch)
- [Stiahnuť](https://github.com/mario-chamuty/hatch/releases/latest)

## Čo Hatch robí

- Paralelný PubGrub resolver pre balíky z pub.dev.
- Odstraňuje z balíkov súbory, ktoré build nepotrebuje, a ukladá ich do globálnej cache zdieľanej všetkými projektmi na stroji.
- Povinne overuje kontrolné súčty SHA-256.
- Pripína verziu Flutter SDK cez FVM.
- Skripty v manifeste a systém pluginov.
- Plugin hatch-ios, ktorý je zatiaľ čiastočne funkčný, má zostaviť, podpísať a nahrať iOS aplikáciu do TestFlightu aj bez Macu.

## Príkazy

- Projekt: init, migrate (z pubspec.yaml do hatch.json), install, add, remove, update, why a run pre skripty.
- Nástroje: fvm (list, use, install, sync), sdk-update, cache stats, cache prune a cache clear, plugin install, list a remove.
- Prepínače: -v až -vvv, -q, --profile, --project-dir a --allow-unchecksummed.
- Plugin ios: ios build --sign --upload.

## Rýchlosť

Rýchlosť vychádza z piatich techník: cache podľa hashu manifestu, intervalová propagácia, ktorá preskočí plné riešenie pri bezkonfliktných závislostiach, paralelné sťahovanie metadát, paralelné riešenie nezávislých podgrafov a PubGrub pre zvyšok. Benchmarky sú v adresári benches/ v repozitári.

## Aké problémy rieši

- Pomalé riešenie závislostí, vďaka paralelnému resolveru a cache.
- Nafúknuté balíky s adresármi example, test, doc a CI: Hatch ich pri rozbalení odstráni. Dá sa to vypnúť cez HATCH_DEBLOAT=0 alebo doladiť pre balík v súbore .hatch.json.
- Duplicitné kópie balíkov v každom projekte, vďaka zdieľanej cache, ktorú možno presunúť cez HATCH_CACHE_DIR.
- Rozdielne verzie na rôznych strojoch a v CI, vďaka FVM, súboru zámku a deterministickému riešeniu.
- Neoverené sťahovania a nedôveryhodné skripty závislostí: povinný SHA-256 a potvrdenie pri prvom spustení, CI skripty štandardne zamieta.
- Prihlasovacie údaje mimo manifestu: ukladajú sa do súboru hatch_auth.json mimo gitu alebo do premenných HATCH_NEST_\*.

## Stav

Hatch je zverejnený vo verzii 0.2.0 s licenciou MIT alebo Apache-2.0. Zdrojový kód a inštalačné balíky pre Windows, macOS a Linux sú na GitHube. Funguje riešenie z pub.dev, závislosti na lokálne cesty, odstraňovanie nepotrebných súborov, správa cache, kontrolné súčty, FVM, migrácia a skripty. Čiastočne funguje register pluginov, iOS build bez Macu a profily. Závislosti z gitu a súkromný register sú v pláne.

## Technológia

Nástroj je napísaný v Ruste ako jeden statický binárny súbor.

## Galéria

![Úvodná stránka Hatch s nadpisom o správcovi závislostí pre Flutter a ukážkou terminálu s príkazom hatch install](https://versiontwo.sk/images/projects/hatch/desktop.webp)

![Mobilná úvodná stránka Hatch s nadpisom, popisom a tlačidlami Download Hatch a Read the docs](https://versiontwo.sk/images/projects/hatch/mobile.webp)

![Dokumentácia Hatch: sekcia Installation s príkazmi curl a tar a obsah stránky v ľavom stĺpci](https://versiontwo.sk/images/projects/hatch/detail.webp)


## Použité technológie

Rust

## Súvisiace projekty

- [Flutabby](https://versiontwo.sk/projekt/flutabby.md): Moderný SSH a SFTP klient pre iOS a Android.
- [flutter.sk](https://versiontwo.sk/projekt/flutter-sk.md): Komunitný portál pre slovenských Flutter vývojárov.

## Súvisiace služby

- [Mobilné aplikácie](https://versiontwo.sk/sluzba/mobilne-aplikacie.md): Naprogramujeme Vám natívnu Android alebo iOS aplikáciu ušitú na mieru pre Váš business.

---

- Zdrojová stránka: https://versiontwo.sk/projekt/hatch
- Jazyk: sk
- Iná jazyková verzia (en): https://versiontwo.sk/en/project/hatch.md
- Aktualizované: 2026-10-18
