Ad

go-getter: Download files from URLs

go-getter downloads files from a string URL using various protocols. It enables flexible downloads from sources like Git, HTTP, and more, simplifying file retrieval workflows.
Screenshot of hashicorp/go-getter homepage

go-getter downloads files or directories from URLs, abstracting away the complexities of different protocols. It's designed for scenarios like downloading modules for Terraform or binaries for Nomad. The library features automatic URL detection and extension, facilitating seamless integration with various systems. It achieves this by employing detectors to transform URLs into appropriate protocols, enhancing user convenience.

go-getter's key strength is its flexibility in handling diverse URL formats (file paths, Git, HTTP, etc.) with a single input string. The automatic URL detection mechanism reduces the burden of protocol-specific logic. Its extensibility allows for adding custom protocols beyond the built-in options. The command-line utility helps verify URL structures before attempting downloads, improving the overall development process.

  • Protocol Support: Supports Local files, Git, Mercurial, HTTP, Amazon S3, Google GCP.
  • URL Detection: Automatically detects and transforms URLs into appropriate protocols (e.g., GitHub URLs to Git).
  • Checksum Verification: Verifies file integrity using MD5, SHA1, SHA256, SHA512, or file checksums.
  • Subdirectory Downloads: Supports downloading specific subdirectories of a URL using double slashes.
  • Forced Protocol: Allows overriding automatic detection with a specified protocol prefix (e.g., git::...).
  • Extensible Protocols: New protocols can be added via implementing the Getter interface.
  • User-Friendly CLI: Includes a command-line tool for testing URL structures.

go-getter is a relatively mature library with a solid track record, evidenced by its stable release history and ongoing maintenance. The project has active issue tracking and a sizable community adoption shown by the number of stars and forks. Documentation is comprehensive, and the core functionality is well-tested, providing reliability.

go-getter benefits developers needing flexible and reliable file downloading capabilities. It's well-suited for automation tasks, infrastructure management tools like Terraform and Nomad, and any application requiring downloads from various sources. It streamlines download processes and enhances security through built-in mitigations.

Languages:
Summarize:
Share:
Stars
1,822
Forks
264
Issues
166
Created
10 years ago
Commit
17 days ago
License
MPL-2.0
Archived
No
Updated 16 days ago

Similar Repositories