{"adoption": {"forks": 216, "observed_at": "2026-08-28T04:06:09.182165+00:00", "stars": 2051}, "canonical_url": "https://ross.abutalabs.com/products/coreasync", "card": {"archived": false, "artifact_type": "library", "description": "Facilities for async programming and communication in Clojure", "domain": ["developer-tools", "programming-languages", "microservices"], "enriched": true, "function": ["concurrency", "message-queue", "developer-tools"], "health_score": 72, "homepage": null, "language": "Clojure", "license": "EPL-1.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["clojure/core.async"], "name": "clojure/core.async", "platform": ["jvm", "cross-platform"], "pushed_at": "2026-06-12T14:30:05+00:00", "repo": "clojure/core.async", "stars": 2051, "tags": ["clojure", "clojurescript", "channels", "go-blocks", "async-programming", "communicating-sequential-processes"], "topics": [], "urls": [], "use_cases": ["write asynchronous code in Clojure without callback hell", "communicate between concurrent tasks using channels", "build producer-consumer pipelines", "coordinate background jobs with go blocks", "handle event streams in ClojureScript frontends", "implement CSP-style concurrency patterns"], "what_it_is": "core.async is a Clojure/ClojureScript library providing facilities for asynchronous programming and communication, centered on channels and go blocks inspired by Communicating Sequential Processes. It lets developers coordinate concurrent work with message passing rather than shared mutable state.", "when_to_avoid": ["you are not working in Clojure or ClojureScript", "you need simple parallelism that core future/pmap already handles", "you require a general-purpose distributed message broker rather than in-process channels"], "when_to_choose": ["you are writing Clojure or ClojureScript and need structured async communication", "you want channel-based message passing instead of raw threads or callbacks", "you need a mature, well-documented concurrency library maintained by the Clojure core team"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/coreasync", "repo": "clojure/core.async", "role": "main", "score": 71}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.182165+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:57:30.777776+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "124589ce16df08e2a7ab74d524d74381f276db9ac6f56533b193c2c2f55a6704", "fetched_at": "2026-08-28T04:06:09.182165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/core.async"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.182165+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:57:30.777776+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "124589ce16df08e2a7ab74d524d74381f276db9ac6f56533b193c2c2f55a6704", "fetched_at": "2026-08-28T04:06:09.182165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/core.async"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:57:30.777776+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "124589ce16df08e2a7ab74d524d74381f276db9ac6f56533b193c2c2f55a6704", "fetched_at": "2026-08-28T04:06:09.182165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/core.async"}], "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:09.182165+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.182165+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.182165+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:57:30.777776+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "124589ce16df08e2a7ab74d524d74381f276db9ac6f56533b193c2c2f55a6704", "fetched_at": "2026-08-28T04:06:09.182165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/core.async"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.182165+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.182165+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:57:30.777776+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "124589ce16df08e2a7ab74d524d74381f276db9ac6f56533b193c2c2f55a6704", "fetched_at": "2026-08-28T04:06:09.182165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/core.async"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.182165+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.182165+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.182165+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:57:30.777776+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "124589ce16df08e2a7ab74d524d74381f276db9ac6f56533b193c2c2f55a6704", "fetched_at": "2026-08-28T04:06:09.182165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/core.async"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.182165+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:09.182165+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:57:30.777776+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "124589ce16df08e2a7ab74d524d74381f276db9ac6f56533b193c2c2f55a6704", "fetched_at": "2026-08-28T04:06:09.182165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/core.async"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:57:30.777776+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "124589ce16df08e2a7ab74d524d74381f276db9ac6f56533b193c2c2f55a6704", "fetched_at": "2026-08-28T04:06:09.182165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/core.async"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:57:30.777776+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "124589ce16df08e2a7ab74d524d74381f276db9ac6f56533b193c2c2f55a6704", "fetched_at": "2026-08-28T04:06:09.182165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/core.async"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:57:30.777776+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "124589ce16df08e2a7ab74d524d74381f276db9ac6f56533b193c2c2f55a6704", "fetched_at": "2026-08-28T04:06:09.182165+00:00", "kind": "readme", "missing": false, "url": "https://github.com/clojure/core.async"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 87, "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": 4858, "days_push": 82, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 71, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}