{"adoption": {"forks": 96, "observed_at": "2026-08-28T04:11:27.606859+00:00", "stars": 19318}, "canonical_url": "https://ross.abutalabs.com/products/goreplay", "card": {"archived": false, "artifact_type": "cli-tool", "description": "GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.", "domain": ["testing", "developer-tools", "performance", "web-development"], "enriched": true, "function": ["testing", "benchmarking", "monitoring", "http-server", "middleware"], "health_score": 59, "homepage": "https://goreplay.org", "language": "Go", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["probelabs/goreplay"], "name": "probelabs/goreplay", "platform": ["windows", "cli", "go"], "pushed_at": "2026-01-27T15:26:22+00:00", "repo": "probelabs/goreplay", "stars": 19318, "tags": ["traffic-replay", "load-testing", "shadow-testing", "http-traffic-capture", "qa", "real-traffic-testing", "devops", "linux", "macos"], "topics": ["go", "testing", "testing-tools", "devops", "qa"], "urls": [], "use_cases": ["replay production HTTP traffic against a staging environment", "load test a service with real user traffic patterns", "capture live requests like tcpdump for debugging", "validate deployments and config changes with real data before rollout", "shadow test new infrastructure without affecting production", "record and analyze request patterns for monitoring"], "what_it_is": "GoReplay is an open-source CLI tool written in Go that captures live HTTP traffic from production servers and replays it against test environments. It enables shadow testing, load testing, and traffic monitoring using real user data without acting as a proxy or requiring infrastructure changes.", "when_to_avoid": ["you need to test non-HTTP binary protocols like Thrift or ProtocolBuffers (requires the paid PRO version)", "you need a GUI-based testing tool", "your traffic is encrypted end-to-end and you cannot capture on the terminating host", "you only need simple unit or contract testing without real traffic"], "when_to_choose": ["you want to test with real production traffic instead of synthetic test cases", "you need load testing that reflects actual user behavior", "you want a non-invasive capture tool that runs alongside your service without being a proxy", "you need session-aware replay with connection pooling and TLS handling"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/goreplay", "repo": "probelabs/goreplay", "role": "main", "score": 52}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.606859+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:00:20.075401+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "51124aee766b5e8b78d1b43009e6eb4b3e40a0a230e332867108636f66416aab", "fetched_at": "2026-08-28T04:11:27.606859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probelabs/goreplay"}, {"content_hash": "b80b0f93c3bf74030e57fc749d1fb0d6023fcbcb9cc55649c084d5f3c94b80eb", "fetched_at": "2026-08-29T07:58:32.850233+00:00", "kind": "homepage", "missing": false, "url": "https://goreplay.org"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.606859+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:00:20.075401+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "51124aee766b5e8b78d1b43009e6eb4b3e40a0a230e332867108636f66416aab", "fetched_at": "2026-08-28T04:11:27.606859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probelabs/goreplay"}, {"content_hash": "b80b0f93c3bf74030e57fc749d1fb0d6023fcbcb9cc55649c084d5f3c94b80eb", "fetched_at": "2026-08-29T07:58:32.850233+00:00", "kind": "homepage", "missing": false, "url": "https://goreplay.org"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:00:20.075401+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "51124aee766b5e8b78d1b43009e6eb4b3e40a0a230e332867108636f66416aab", "fetched_at": "2026-08-28T04:11:27.606859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probelabs/goreplay"}, {"content_hash": "b80b0f93c3bf74030e57fc749d1fb0d6023fcbcb9cc55649c084d5f3c94b80eb", "fetched_at": "2026-08-29T07:58:32.850233+00:00", "kind": "homepage", "missing": false, "url": "https://goreplay.org"}], "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:11:27.606859+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.606859+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.606859+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:00:20.075401+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "51124aee766b5e8b78d1b43009e6eb4b3e40a0a230e332867108636f66416aab", "fetched_at": "2026-08-28T04:11:27.606859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probelabs/goreplay"}, {"content_hash": "b80b0f93c3bf74030e57fc749d1fb0d6023fcbcb9cc55649c084d5f3c94b80eb", "fetched_at": "2026-08-29T07:58:32.850233+00:00", "kind": "homepage", "missing": false, "url": "https://goreplay.org"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.606859+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.606859+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:00:20.075401+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "51124aee766b5e8b78d1b43009e6eb4b3e40a0a230e332867108636f66416aab", "fetched_at": "2026-08-28T04:11:27.606859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probelabs/goreplay"}, {"content_hash": "b80b0f93c3bf74030e57fc749d1fb0d6023fcbcb9cc55649c084d5f3c94b80eb", "fetched_at": "2026-08-29T07:58:32.850233+00:00", "kind": "homepage", "missing": false, "url": "https://goreplay.org"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.606859+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.606859+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.606859+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:00:20.075401+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "51124aee766b5e8b78d1b43009e6eb4b3e40a0a230e332867108636f66416aab", "fetched_at": "2026-08-28T04:11:27.606859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probelabs/goreplay"}, {"content_hash": "b80b0f93c3bf74030e57fc749d1fb0d6023fcbcb9cc55649c084d5f3c94b80eb", "fetched_at": "2026-08-29T07:58:32.850233+00:00", "kind": "homepage", "missing": false, "url": "https://goreplay.org"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.606859+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:27.606859+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:00:20.075401+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "51124aee766b5e8b78d1b43009e6eb4b3e40a0a230e332867108636f66416aab", "fetched_at": "2026-08-28T04:11:27.606859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probelabs/goreplay"}, {"content_hash": "b80b0f93c3bf74030e57fc749d1fb0d6023fcbcb9cc55649c084d5f3c94b80eb", "fetched_at": "2026-08-29T07:58:32.850233+00:00", "kind": "homepage", "missing": false, "url": "https://goreplay.org"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:00:20.075401+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "51124aee766b5e8b78d1b43009e6eb4b3e40a0a230e332867108636f66416aab", "fetched_at": "2026-08-28T04:11:27.606859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probelabs/goreplay"}, {"content_hash": "b80b0f93c3bf74030e57fc749d1fb0d6023fcbcb9cc55649c084d5f3c94b80eb", "fetched_at": "2026-08-29T07:58:32.850233+00:00", "kind": "homepage", "missing": false, "url": "https://goreplay.org"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:00:20.075401+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "51124aee766b5e8b78d1b43009e6eb4b3e40a0a230e332867108636f66416aab", "fetched_at": "2026-08-28T04:11:27.606859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probelabs/goreplay"}, {"content_hash": "b80b0f93c3bf74030e57fc749d1fb0d6023fcbcb9cc55649c084d5f3c94b80eb", "fetched_at": "2026-08-29T07:58:32.850233+00:00", "kind": "homepage", "missing": false, "url": "https://goreplay.org"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:00:20.075401+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "51124aee766b5e8b78d1b43009e6eb4b3e40a0a230e332867108636f66416aab", "fetched_at": "2026-08-28T04:11:27.606859+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probelabs/goreplay"}, {"content_hash": "b80b0f93c3bf74030e57fc749d1fb0d6023fcbcb9cc55649c084d5f3c94b80eb", "fetched_at": "2026-08-29T07:58:32.850233+00:00", "kind": "homepage", "missing": false, "url": "https://goreplay.org"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 64, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4843, "days_push": 218, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 52, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}