{"adoption": {"forks": 264, "observed_at": "2026-08-28T04:04:41.148617+00:00", "stars": 1422}, "canonical_url": "https://ross.abutalabs.com/products/novate", "card": {"archived": false, "artifact_type": "library", "description": "A  safety client by Https for android,  (Android网络框架，基于Retrofit和RxJava打造的链式网络库, 支持okhttp的调用风格，又兼容Retrofit API，并支持rxJava链式操作）", "domain": ["mobile-development", "android-tools", "apis", "developer-tools"], "enriched": true, "function": ["http-client", "web-framework", "serialization", "caching", "file-upload"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Tamicer/Novate"], "name": "Tamicer/Novate", "platform": ["jvm"], "pushed_at": "2022-07-29T05:44:03+00:00", "repo": "Tamicer/Novate", "stars": 1422, "tags": ["retrofit", "rxjava", "okhttp", "networking", "chained-api", "offline-cache", "android-library", "android", "mobile"], "topics": ["rxjava", "retrofit", "okhttp3", "https", "android"], "urls": [], "use_cases": ["make http requests from android with rxjava chaining", "wrap retrofit and okhttp into a simpler client library", "cache api responses for offline use in an android app", "upload and download files with progress callbacks on android", "add common request headers and unified response parsing across apis", "reduce boilerplate and crash-prone error handling in android networking"], "what_it_is": "Novate is an Android networking library built on top of Retrofit, OkHttp, and RxJava that provides a fluent, chain-style HTTP client API. It unifies request/response handling, adds offline caching, cookie management, file upload/download with progress, and centralized error handling.", "when_to_avoid": ["you are using Kotlin and prefer modern coroutines-based networking like Retrofit with suspend functions or Ktor", "you want an actively maintained library; the latest release is from 2022 and the ecosystem has moved on", "your project already uses plain Retrofit/OkHttp and you don't need the extra wrapper layer"], "when_to_choose": ["you are building an Android app in Java and want a Retrofit/RxJava wrapper with caching and unified error handling", "you want okhttp-style calls plus retrofit annotation support in one library", "you need built-in offline caching, cookie management, and file transfer with progress"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/novate", "repo": "Tamicer/Novate", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.148617+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:37:40.807191+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0986ccae28539b097cde0d73c7d88f0d3f3897fc9b96c4f670bb5910bf9931a1", "fetched_at": "2026-08-28T04:04:41.148617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tamicer/Novate"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.148617+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:37:40.807191+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0986ccae28539b097cde0d73c7d88f0d3f3897fc9b96c4f670bb5910bf9931a1", "fetched_at": "2026-08-28T04:04:41.148617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tamicer/Novate"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:37:40.807191+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0986ccae28539b097cde0d73c7d88f0d3f3897fc9b96c4f670bb5910bf9931a1", "fetched_at": "2026-08-28T04:04:41.148617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tamicer/Novate"}], "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:04:41.148617+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.148617+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.148617+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:37:40.807191+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0986ccae28539b097cde0d73c7d88f0d3f3897fc9b96c4f670bb5910bf9931a1", "fetched_at": "2026-08-28T04:04:41.148617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tamicer/Novate"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.148617+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.148617+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:37:40.807191+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0986ccae28539b097cde0d73c7d88f0d3f3897fc9b96c4f670bb5910bf9931a1", "fetched_at": "2026-08-28T04:04:41.148617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tamicer/Novate"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.148617+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.148617+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.148617+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:37:40.807191+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0986ccae28539b097cde0d73c7d88f0d3f3897fc9b96c4f670bb5910bf9931a1", "fetched_at": "2026-08-28T04:04:41.148617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tamicer/Novate"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.148617+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.148617+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:37:40.807191+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0986ccae28539b097cde0d73c7d88f0d3f3897fc9b96c4f670bb5910bf9931a1", "fetched_at": "2026-08-28T04:04:41.148617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tamicer/Novate"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:37:40.807191+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0986ccae28539b097cde0d73c7d88f0d3f3897fc9b96c4f670bb5910bf9931a1", "fetched_at": "2026-08-28T04:04:41.148617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tamicer/Novate"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:37:40.807191+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0986ccae28539b097cde0d73c7d88f0d3f3897fc9b96c4f670bb5910bf9931a1", "fetched_at": "2026-08-28T04:04:41.148617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tamicer/Novate"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:37:40.807191+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0986ccae28539b097cde0d73c7d88f0d3f3897fc9b96c4f670bb5910bf9931a1", "fetched_at": "2026-08-28T04:04:41.148617+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tamicer/Novate"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 3674, "days_push": 1496, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}