# Ztorrent

Minimal BitTorrent client skeleton in Go.

## Run

```bash
go run ./cmd/torrent-client
```

App starts a native desktop GUI window.

## Current features

- Parse `.torrent` metadata and piece hashes
- Compute `info_hash` from raw `info` bytes (spec-compatible)
- Single-file and multi-file torrents
- Send tracker announce requests via HTTP(S) and UDP trackers
- Parse compact peer list
- Multi-tracker fallback (including public trackers)
- Native GUI for loading torrents by path and browsing files
- Show tracker states, discovered peers, and torrent file list in the GUI

## Build (macOS/Linux/Windows)

```bash
./scripts/build-all.sh
```

Note: for non-host targets with native GUI, cross C toolchains are required; unsupported targets are skipped.
