{"adoption": {"forks": 526, "observed_at": "2026-08-28T04:08:28.210484+00:00", "stars": 3885}, "canonical_url": "https://ross.abutalabs.com/products/ring-clojure-ring", "card": {"archived": false, "artifact_type": "library", "description": "Clojure HTTP server abstraction", "domain": ["web-development", "backend", "apis"], "enriched": true, "function": ["http-server", "middleware", "routing", "websocket"], "health_score": 73, "homepage": null, "language": "Clojure", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["ring-clojure/ring"], "name": "ring-clojure/ring", "platform": ["jvm", "jvm-scripting", "cross-platform"], "pushed_at": "2026-06-23T11:46:28+00:00", "repo": "ring-clojure/ring", "stars": 3885, "tags": ["clojure", "http-abstraction", "rack-inspired", "wsgi-inspired", "servlet"], "topics": ["ring", "clojure", "web", "http"], "urls": [], "use_cases": ["build web applications in Clojure", "write reusable HTTP middleware", "serve a Clojure app with an embedded Jetty server", "wrap Ring handlers as Java or Jakarta servlets", "add WebSockets to a Clojure web app", "standardize request/response handling across Clojure web frameworks"], "what_it_is": "Ring is a Clojure library that abstracts HTTP into a simple unified API, inspired by Python's WSGI and Ruby's Rack. It enables modular web applications and middleware that work across web servers and frameworks via adapters like the embedded Jetty adapter.", "when_to_avoid": ["you need a batteries-included full-stack framework with routing, ORM, and templating out of the box", "you are not working on the JVM or in Clojure/ClojureScript", "you want a non-blocking async-first HTTP stack outside the Ring model"], "when_to_choose": ["you are building a web application or API in Clojure", "you want a minimal, composable HTTP abstraction rather than a full-stack framework", "you need middleware-based request/response processing on the JVM", "you want compatibility with the broad ecosystem of Ring-based Clojure libraries"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ring-clojure-ring", "repo": "ring-clojure/ring", "role": "main", "score": 72}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:28.210484+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:25:40.450278+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "542311896fd9c235fca771970926d825e1931eaf470f5a583e75ae28d9dc4bf9", "fetched_at": "2026-08-28T04:08:28.210484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ring-clojure/ring"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:28.210484+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:25:40.450278+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "542311896fd9c235fca771970926d825e1931eaf470f5a583e75ae28d9dc4bf9", "fetched_at": "2026-08-28T04:08:28.210484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ring-clojure/ring"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:25:40.450278+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "542311896fd9c235fca771970926d825e1931eaf470f5a583e75ae28d9dc4bf9", "fetched_at": "2026-08-28T04:08:28.210484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ring-clojure/ring"}], "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:08:28.210484+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:28.210484+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:28.210484+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:25:40.450278+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "542311896fd9c235fca771970926d825e1931eaf470f5a583e75ae28d9dc4bf9", "fetched_at": "2026-08-28T04:08:28.210484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ring-clojure/ring"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:28.210484+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:28.210484+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:25:40.450278+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "542311896fd9c235fca771970926d825e1931eaf470f5a583e75ae28d9dc4bf9", "fetched_at": "2026-08-28T04:08:28.210484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ring-clojure/ring"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:28.210484+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:28.210484+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:28.210484+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:25:40.450278+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "542311896fd9c235fca771970926d825e1931eaf470f5a583e75ae28d9dc4bf9", "fetched_at": "2026-08-28T04:08:28.210484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ring-clojure/ring"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:28.210484+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:28.210484+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:25:40.450278+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "542311896fd9c235fca771970926d825e1931eaf470f5a583e75ae28d9dc4bf9", "fetched_at": "2026-08-28T04:08:28.210484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ring-clojure/ring"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:25:40.450278+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "542311896fd9c235fca771970926d825e1931eaf470f5a583e75ae28d9dc4bf9", "fetched_at": "2026-08-28T04:08:28.210484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ring-clojure/ring"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:25:40.450278+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "542311896fd9c235fca771970926d825e1931eaf470f5a583e75ae28d9dc4bf9", "fetched_at": "2026-08-28T04:08:28.210484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ring-clojure/ring"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:25:40.450278+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "542311896fd9c235fca771970926d825e1931eaf470f5a583e75ae28d9dc4bf9", "fetched_at": "2026-08-28T04:08:28.210484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ring-clojure/ring"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 89, "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": 5239, "days_push": 71, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 72, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}