{"adoption": {"forks": 128, "observed_at": "2026-08-28T04:10:02.567641+00:00", "stars": 7717}, "canonical_url": "https://ross.abutalabs.com/products/promises", "card": {"archived": false, "artifact_type": "library", "description": "Promises/A+ library for PHP with synchronous support", "domain": ["developer-tools", "web-development", "backend"], "enriched": true, "function": ["concurrency", "http-client"], "health_score": 100, "homepage": null, "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["guzzle/promises"], "name": "guzzle/promises", "platform": ["php"], "pushed_at": "2026-08-24T10:00:45+00:00", "repo": "guzzle/promises", "stars": 7717, "tags": ["promises", "async", "promise-chaining", "guzzle"], "topics": [], "urls": [], "use_cases": ["handle asynchronous HTTP requests with Guzzle's requestAsync", "chain async operations with then() handlers in PHP", "wait for async results synchronously with wait()", "compose and manage groups of promises", "cancel pending asynchronous operations"], "what_it_is": "A Promises/A+ implementation for PHP that supports promise chaining, synchronous waiting, cancellation, and promise groups. It is the promise library used by Guzzle for asynchronous HTTP operations and can be used standalone for promise composition.", "when_to_avoid": ["you need true parallel async I/O with an event loop (consider ReactPHP or Swoole)", "your project uses a different promise library with incompatible interfaces"], "when_to_choose": ["you use Guzzle and need to work with its PromiseInterface results", "you need Promises/A+ semantics in PHP without a full async framework", "you want promise composition with the option of synchronous waiting"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/promises", "repo": "guzzle/promises", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.567641+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:35:19.178089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a3cd564a0beb7d5b912d9af72225113b2ca6a6fb258168860de385004ed06d06", "fetched_at": "2026-08-28T04:10:02.567641+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guzzle/promises"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.567641+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:35:19.178089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a3cd564a0beb7d5b912d9af72225113b2ca6a6fb258168860de385004ed06d06", "fetched_at": "2026-08-28T04:10:02.567641+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guzzle/promises"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:35:19.178089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a3cd564a0beb7d5b912d9af72225113b2ca6a6fb258168860de385004ed06d06", "fetched_at": "2026-08-28T04:10:02.567641+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guzzle/promises"}], "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:10:02.567641+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.567641+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.567641+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:35:19.178089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a3cd564a0beb7d5b912d9af72225113b2ca6a6fb258168860de385004ed06d06", "fetched_at": "2026-08-28T04:10:02.567641+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guzzle/promises"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.567641+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.567641+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:35:19.178089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a3cd564a0beb7d5b912d9af72225113b2ca6a6fb258168860de385004ed06d06", "fetched_at": "2026-08-28T04:10:02.567641+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guzzle/promises"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.567641+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.567641+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.567641+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:35:19.178089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a3cd564a0beb7d5b912d9af72225113b2ca6a6fb258168860de385004ed06d06", "fetched_at": "2026-08-28T04:10:02.567641+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guzzle/promises"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.567641+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.567641+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:35:19.178089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a3cd564a0beb7d5b912d9af72225113b2ca6a6fb258168860de385004ed06d06", "fetched_at": "2026-08-28T04:10:02.567641+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guzzle/promises"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:35:19.178089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a3cd564a0beb7d5b912d9af72225113b2ca6a6fb258168860de385004ed06d06", "fetched_at": "2026-08-28T04:10:02.567641+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guzzle/promises"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:35:19.178089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a3cd564a0beb7d5b912d9af72225113b2ca6a6fb258168860de385004ed06d06", "fetched_at": "2026-08-28T04:10:02.567641+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guzzle/promises"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:35:19.178089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a3cd564a0beb7d5b912d9af72225113b2ca6a6fb258168860de385004ed06d06", "fetched_at": "2026-08-28T04:10:02.567641+00:00", "kind": "readme", "missing": false, "url": "https://github.com/guzzle/promises"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 99}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4207, "days_push": 9, "days_rel": 9, "gap_med": 12, "n_releases_24m": 14}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}