{"adoption": {"forks": 247, "observed_at": "2026-08-28T04:06:59.152116+00:00", "stars": 2537}, "canonical_url": "https://ross.abutalabs.com/products/anyio", "card": {"archived": false, "artifact_type": "library", "description": "High level asynchronous concurrency and networking framework that works on top of either Trio or asyncio", "domain": ["developer-tools", "backend", "networking", "apis"], "enriched": true, "function": ["concurrency", "networking", "testing", "http-server"], "health_score": 100, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["agronholm/anyio"], "name": "agronholm/anyio", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-25T16:28:26+00:00", "repo": "agronholm/anyio", "stars": 2537, "tags": ["asyncio", "trio", "structured-concurrency", "async-await", "task-groups", "pytest-plugin"], "topics": ["async-await", "trio", "asyncio"], "urls": [], "use_cases": ["write async python code that works on both asyncio and trio", "structured concurrency with task groups in asyncio", "async tcp and udp socket networking", "run async tests with pytest and async fixtures", "async file io and subprocess handling", "migrate a library from asyncio to trio incrementally"], "what_it_is": "AnyIO is a high-level asynchronous concurrency and networking library for Python that runs on top of either asyncio or Trio. It provides Trio-style structured concurrency, task groups, async networking primitives, and a pytest plugin, letting code run unmodified on either async backend.", "when_to_avoid": ["you only target one backend and are happy with its native APIs", "you need a full web framework rather than a concurrency library", "you work outside the Python ecosystem"], "when_to_choose": ["you need backend-agnostic async code portable across asyncio and trio", "you want trio-like structured concurrency on asyncio", "you need high-level async networking, streams, and synchronization primitives", "you want async pytest testing with hypothesis support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/anyio", "repo": "agronholm/anyio", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.152116+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:25:12.497363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050db7ea42de8ee1c2a9ed55ef1231e59d55cd3c166325b3528de26c25f655d3", "fetched_at": "2026-08-28T04:06:59.152116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/agronholm/anyio"}, {"content_hash": "7d014b3b4b2a418ca208b1c5f6bf72b9b2ab029f278e17746e5b3bdd09188785", "fetched_at": "2026-08-29T10:07:15.094322+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/anyio/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.152116+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:25:12.497363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050db7ea42de8ee1c2a9ed55ef1231e59d55cd3c166325b3528de26c25f655d3", "fetched_at": "2026-08-28T04:06:59.152116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/agronholm/anyio"}, {"content_hash": "7d014b3b4b2a418ca208b1c5f6bf72b9b2ab029f278e17746e5b3bdd09188785", "fetched_at": "2026-08-29T10:07:15.094322+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/anyio/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:25:12.497363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050db7ea42de8ee1c2a9ed55ef1231e59d55cd3c166325b3528de26c25f655d3", "fetched_at": "2026-08-28T04:06:59.152116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/agronholm/anyio"}, {"content_hash": "7d014b3b4b2a418ca208b1c5f6bf72b9b2ab029f278e17746e5b3bdd09188785", "fetched_at": "2026-08-29T10:07:15.094322+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/anyio/json"}], "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:59.152116+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.152116+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.152116+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:25:12.497363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050db7ea42de8ee1c2a9ed55ef1231e59d55cd3c166325b3528de26c25f655d3", "fetched_at": "2026-08-28T04:06:59.152116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/agronholm/anyio"}, {"content_hash": "7d014b3b4b2a418ca208b1c5f6bf72b9b2ab029f278e17746e5b3bdd09188785", "fetched_at": "2026-08-29T10:07:15.094322+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/anyio/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.152116+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.152116+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:25:12.497363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050db7ea42de8ee1c2a9ed55ef1231e59d55cd3c166325b3528de26c25f655d3", "fetched_at": "2026-08-28T04:06:59.152116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/agronholm/anyio"}, {"content_hash": "7d014b3b4b2a418ca208b1c5f6bf72b9b2ab029f278e17746e5b3bdd09188785", "fetched_at": "2026-08-29T10:07:15.094322+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/anyio/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.152116+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.152116+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.152116+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:25:12.497363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050db7ea42de8ee1c2a9ed55ef1231e59d55cd3c166325b3528de26c25f655d3", "fetched_at": "2026-08-28T04:06:59.152116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/agronholm/anyio"}, {"content_hash": "7d014b3b4b2a418ca208b1c5f6bf72b9b2ab029f278e17746e5b3bdd09188785", "fetched_at": "2026-08-29T10:07:15.094322+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/anyio/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.152116+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:59.152116+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:25:12.497363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050db7ea42de8ee1c2a9ed55ef1231e59d55cd3c166325b3528de26c25f655d3", "fetched_at": "2026-08-28T04:06:59.152116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/agronholm/anyio"}, {"content_hash": "7d014b3b4b2a418ca208b1c5f6bf72b9b2ab029f278e17746e5b3bdd09188785", "fetched_at": "2026-08-29T10:07:15.094322+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/anyio/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:25:12.497363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050db7ea42de8ee1c2a9ed55ef1231e59d55cd3c166325b3528de26c25f655d3", "fetched_at": "2026-08-28T04:06:59.152116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/agronholm/anyio"}, {"content_hash": "7d014b3b4b2a418ca208b1c5f6bf72b9b2ab029f278e17746e5b3bdd09188785", "fetched_at": "2026-08-29T10:07:15.094322+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/anyio/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:25:12.497363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050db7ea42de8ee1c2a9ed55ef1231e59d55cd3c166325b3528de26c25f655d3", "fetched_at": "2026-08-28T04:06:59.152116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/agronholm/anyio"}, {"content_hash": "7d014b3b4b2a418ca208b1c5f6bf72b9b2ab029f278e17746e5b3bdd09188785", "fetched_at": "2026-08-29T10:07:15.094322+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/anyio/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:25:12.497363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050db7ea42de8ee1c2a9ed55ef1231e59d55cd3c166325b3528de26c25f655d3", "fetched_at": "2026-08-28T04:06:59.152116+00:00", "kind": "readme", "missing": false, "url": "https://github.com/agronholm/anyio"}, {"content_hash": "7d014b3b4b2a418ca208b1c5f6bf72b9b2ab029f278e17746e5b3bdd09188785", "fetched_at": "2026-08-29T10:07:15.094322+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/anyio/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 80}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2936, "days_push": 8, "days_rel": 52, "gap_med": 33.0, "n_releases_24m": 17}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}