{"adoption": {"forks": 296, "observed_at": "2026-08-28T04:06:39.047754+00:00", "stars": 2343}, "canonical_url": "https://ross.abutalabs.com/products/go-retryablehttp", "card": {"archived": false, "artifact_type": "library", "description": "Retryable HTTP client in Go", "domain": ["web-development", "developer-tools", "apis"], "enriched": true, "function": ["http-client", "middleware"], "health_score": 69, "homepage": null, "language": "Go", "license": "MPL-2.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["hashicorp/go-retryablehttp"], "name": "hashicorp/go-retryablehttp", "platform": ["go", "cross-platform"], "pushed_at": "2026-05-11T02:52:33+00:00", "repo": "hashicorp/go-retryablehttp", "stars": 2343, "tags": ["retry", "exponential-backoff", "net-http-wrapper", "resilience"], "topics": [], "urls": [], "use_cases": ["add automatic retries to http requests in go", "retry failed http calls with exponential backoff", "make resilient api calls that survive transient errors", "retry on 5xx responses and connection errors", "wrap net/http client with retry logic", "rewind request bodies for retrying post requests"], "what_it_is": "A Go library providing an HTTP client wrapper around net/http with automatic retries and exponential backoff. It exposes a nearly identical API to the standard library, making it easy to drop into existing Go programs.", "when_to_avoid": ["you need retries for non-HTTP protocols", "you require fine-grained custom retry policies beyond error/5xx conditions", "your Go version is older than the library's minimum requirement"], "when_to_choose": ["you want drop-in retry behavior for Go HTTP calls with a familiar net/http API", "you need to retry idempotent requests or rewindable-body requests on transient failures", "you want a battle-tested HashiCorp library with a standard *http.Client conversion"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/go-retryablehttp", "repo": "hashicorp/go-retryablehttp", "role": "main", "score": 69}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:39.047754+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:37:14.210778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2c992dbae5db7cb5b4a16488aa2a4f7855bccb9660a5898fe6ac002ac31a6f", "fetched_at": "2026-08-28T04:06:39.047754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/go-retryablehttp"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:39.047754+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:37:14.210778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2c992dbae5db7cb5b4a16488aa2a4f7855bccb9660a5898fe6ac002ac31a6f", "fetched_at": "2026-08-28T04:06:39.047754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/go-retryablehttp"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:37:14.210778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2c992dbae5db7cb5b4a16488aa2a4f7855bccb9660a5898fe6ac002ac31a6f", "fetched_at": "2026-08-28T04:06:39.047754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/go-retryablehttp"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:39.047754+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:39.047754+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:39.047754+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:37:14.210778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2c992dbae5db7cb5b4a16488aa2a4f7855bccb9660a5898fe6ac002ac31a6f", "fetched_at": "2026-08-28T04:06:39.047754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/go-retryablehttp"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:39.047754+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:39.047754+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:37:14.210778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2c992dbae5db7cb5b4a16488aa2a4f7855bccb9660a5898fe6ac002ac31a6f", "fetched_at": "2026-08-28T04:06:39.047754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/go-retryablehttp"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:39.047754+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:39.047754+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:39.047754+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:37:14.210778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2c992dbae5db7cb5b4a16488aa2a4f7855bccb9660a5898fe6ac002ac31a6f", "fetched_at": "2026-08-28T04:06:39.047754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/go-retryablehttp"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:39.047754+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:39.047754+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:37:14.210778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2c992dbae5db7cb5b4a16488aa2a4f7855bccb9660a5898fe6ac002ac31a6f", "fetched_at": "2026-08-28T04:06:39.047754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/go-retryablehttp"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:37:14.210778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2c992dbae5db7cb5b4a16488aa2a4f7855bccb9660a5898fe6ac002ac31a6f", "fetched_at": "2026-08-28T04:06:39.047754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/go-retryablehttp"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:37:14.210778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2c992dbae5db7cb5b4a16488aa2a4f7855bccb9660a5898fe6ac002ac31a6f", "fetched_at": "2026-08-28T04:06:39.047754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/go-retryablehttp"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:37:14.210778+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb2c992dbae5db7cb5b4a16488aa2a4f7855bccb9660a5898fe6ac002ac31a6f", "fetched_at": "2026-08-28T04:06:39.047754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/hashicorp/go-retryablehttp"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 81, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3922, "days_push": 114, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 69, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}