{"adoption": {"forks": 626, "observed_at": "2026-08-28T04:09:56.095466+00:00", "stars": 7127}, "canonical_url": "https://ross.abutalabs.com/products/agera", "card": {"archived": true, "artifact_type": "library", "description": "Reactive Programming for Android", "domain": ["mobile-development", "android-tools", "developer-tools"], "enriched": true, "function": ["concurrency", "state-management", "developer-tools"], "health_score": 10, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["google/agera"], "name": "google/agera", "platform": ["jvm"], "pushed_at": "2022-01-13T14:58:57+00:00", "repo": "google/agera", "stars": 7127, "tags": ["reactive-programming", "functional-reactive", "asynchronous", "observables", "java", "android-sdk", "android", "mobile"], "topics": ["agera", "android", "reactive"], "urls": [], "use_cases": ["build reactive Android apps with observable data flows", "handle asynchronous event streams in Android Java code", "bind RecyclerView adapters to reactive data sources", "reactively query SQLite databases on Android", "replace RxJava with a lightweight Google-maintained alternative", "wire up SharedPreferences and BroadcastReceivers reactively"], "what_it_is": "Agera is a set of Java classes and interfaces from Google for writing functional, asynchronous, and reactive applications on Android, requiring Android SDK 9+. It includes optional experimental extension libraries for content providers, SQLite databases, HTTP connections, and RecyclerView integration.", "when_to_avoid": ["starting a new Android project - prefer Kotlin coroutines/Flow or RxJava", "you need an actively developed library with recent releases and community support", "your project uses Kotlin idioms rather than Java", "you need broad third-party ecosystem support like Retrofit adapters"], "when_to_choose": ["you maintain an existing Android codebase already using Agera", "you want a small, Google-authored reactive library for Java-based Android apps", "you need reactive primitives without the full RxJava dependency footprint"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/agera", "repo": "google/agera", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.095466+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:40:04.226016+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73b62344d2f5a537a6505771317c7e4ee5813aed95f041a8236b47cfa075b595", "fetched_at": "2026-08-28T04:09:56.095466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/agera"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.095466+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:40:04.226016+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73b62344d2f5a537a6505771317c7e4ee5813aed95f041a8236b47cfa075b595", "fetched_at": "2026-08-28T04:09:56.095466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/agera"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:40:04.226016+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73b62344d2f5a537a6505771317c7e4ee5813aed95f041a8236b47cfa075b595", "fetched_at": "2026-08-28T04:09:56.095466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/agera"}], "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:09:56.095466+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.095466+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.095466+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:40:04.226016+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73b62344d2f5a537a6505771317c7e4ee5813aed95f041a8236b47cfa075b595", "fetched_at": "2026-08-28T04:09:56.095466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/agera"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.095466+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.095466+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:40:04.226016+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73b62344d2f5a537a6505771317c7e4ee5813aed95f041a8236b47cfa075b595", "fetched_at": "2026-08-28T04:09:56.095466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/agera"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.095466+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.095466+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.095466+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:40:04.226016+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73b62344d2f5a537a6505771317c7e4ee5813aed95f041a8236b47cfa075b595", "fetched_at": "2026-08-28T04:09:56.095466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/agera"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.095466+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.095466+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:40:04.226016+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73b62344d2f5a537a6505771317c7e4ee5813aed95f041a8236b47cfa075b595", "fetched_at": "2026-08-28T04:09:56.095466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/agera"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:40:04.226016+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73b62344d2f5a537a6505771317c7e4ee5813aed95f041a8236b47cfa075b595", "fetched_at": "2026-08-28T04:09:56.095466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/agera"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:40:04.226016+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73b62344d2f5a537a6505771317c7e4ee5813aed95f041a8236b47cfa075b595", "fetched_at": "2026-08-28T04:09:56.095466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/agera"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:40:04.226016+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73b62344d2f5a537a6505771317c7e4ee5813aed95f041a8236b47cfa075b595", "fetched_at": "2026-08-28T04:09:56.095466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/agera"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3912, "days_push": 1693, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}