Skip to content

Comments

Documentation, new features, CI, CLI, downloader, tests & more#1

Merged
meszmate merged 1 commit intomainfrom
v0.1.0
Feb 5, 2026
Merged

Documentation, new features, CI, CLI, downloader, tests & more#1
meszmate merged 1 commit intomainfrom
v0.1.0

Conversation

@meszmate
Copy link
Owner

@meszmate meszmate commented Feb 5, 2026

Transform the manifest parser from a parsing-only library into a full-featured project with a download engine, CLI tool, GoReleaser, and comprehensive documentation.

Changes

Download Engine (downloader/)

New sub-package so both CLI and library users can download game files. Includes a ProgressReporter interface with a no-op implementation for library users, a VerifyInstallation() function that checks file existence, size, and SHA1 hash
against a manifest, and a full download orchestrator with worker pool concurrency, chunk deduplication, retry with exponential backoff (capped at 30s), disk-based chunk cache for resume, SHA1 verification, atomic writes via temp files, context cancellation, tag-based file filtering, dry-run mode, and automatic cache cleanup after assembly. Covered by 16 tests across downloader and verifier.

CLI (cmd/manifest/)

Built with cobra and progressbar/v3, only imported from cmd/ so library users don't pull these dependencies. Commands: info for displaying metadata and sizes, list for file listing with tag/sort/filter/long flags, download with progress bar and flags for base URL, concurrency, retries, verify, resume, tags, and dry-run, verify for checking installed files against a manifest, delta for comparing two manifests with optional JSON output, chunks for listing chunk info, and export for JSON or CSV output.

GoReleaser + CI

Added .goreleaser.yaml for multi-platform static binaries (linux/darwin/windows, amd64/arm64) with ldflags for version injection. Added .github/workflows/release.yml triggered on version tags using goreleaser-action. Updated CI workflow to include a CLI build step.

Documentation

Added doc.go with package-level GoDoc. Complete rewrite of README.md with badges, feature list, CLI installation and usage for all commands, and low-level library examples covering parsing, metadata inspection, file and chunk iteration, chunk parts, custom fields, single chunk download and decompression, manual file assembly, the high-level downloader, delta patching, and verification. Includes CDN base URL performance table.

@meszmate meszmate merged commit 6741006 into main Feb 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant