{"adoption": {"forks": 382, "observed_at": "2026-08-28T04:05:22.766436+00:00", "stars": 1692}, "canonical_url": "https://ross.abutalabs.com/products/xsnow", "card": {"archived": false, "artifact_type": "framework", "description": "💮基于RxJava2+Retrofit2精心打造的Android基础框架，包含网络、上传、下载、缓存、事件总线、权限管理、数据库、图片加载，基本都是项目中必用功能，每个模块充分解耦，可自由拓展。", "domain": ["mobile-development", "android-tools", "web-development", "developer-tools"], "enriched": true, "function": ["http-client", "caching", "middleware", "state-management", "image-processing", "database", "auth"], "health_score": 20, "homepage": "http://www.huwei.tech/", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["xiaoyaoyou1212/XSnow"], "name": "xiaoyaoyou1212/XSnow", "platform": ["jvm"], "pushed_at": "2018-07-16T07:01:07+00:00", "repo": "xiaoyaoyou1212/XSnow", "stars": 1692, "tags": ["rxjava2", "retrofit2", "rxbus", "rxpermissions", "glide", "greendao", "android-base-framework", "okhttp", "event-bus", "file-upload", "file-download", "android", "mobile"], "topics": ["rxjava2", "retrofit2", "rxbus", "rxpermissions", "cache", "glide", "greendao"], "urls": [], "use_cases": ["bootstrap an Android app with networking and common utilities", "make HTTP requests with RxJava2 and Retrofit2 on Android", "implement offline caching strategies for API responses", "upload and download files with progress callbacks", "manage runtime permissions reactively with RxPermissions", "use RxBus for event-based communication between components", "integrate GreenDao database and Glide image loading in one framework"], "what_it_is": "XSnow is an Android base framework built on RxJava2 and Retrofit2 that bundles networking, upload/download, caching, event bus, permission management, database (GreenDao), and image loading (Glide) into decoupled, extensible modules. It provides global and per-request configuration, unified exception handling, retry mechanisms, and request cancellation by tag.", "when_to_avoid": ["starting a new Android project - prefer Kotlin, coroutines, and modern Jetpack libraries", "the project is unmaintained since 2018 and depends on deprecated JCenter and old library versions", "you only need one small capability rather than a full base framework"], "when_to_choose": ["starting a legacy Java-based Android project that still uses RxJava2 and Retrofit2", "you want a pre-integrated bundle of networking, caching, event bus, and image loading", "you need configurable offline/online caching strategies with retry support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/xsnow", "repo": "xiaoyaoyou1212/XSnow", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.766436+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:38:15.139988+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "296fa8c38f41c18c0e12e939dd78406f9223bf9c9ae31bf570824f50e9dd8b4a", "fetched_at": "2026-08-28T04:05:22.766436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/XSnow"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.766436+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:38:15.139988+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "296fa8c38f41c18c0e12e939dd78406f9223bf9c9ae31bf570824f50e9dd8b4a", "fetched_at": "2026-08-28T04:05:22.766436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/XSnow"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:38:15.139988+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "296fa8c38f41c18c0e12e939dd78406f9223bf9c9ae31bf570824f50e9dd8b4a", "fetched_at": "2026-08-28T04:05:22.766436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/XSnow"}], "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:05:22.766436+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.766436+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.766436+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:38:15.139988+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "296fa8c38f41c18c0e12e939dd78406f9223bf9c9ae31bf570824f50e9dd8b4a", "fetched_at": "2026-08-28T04:05:22.766436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/XSnow"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.766436+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.766436+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:38:15.139988+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "296fa8c38f41c18c0e12e939dd78406f9223bf9c9ae31bf570824f50e9dd8b4a", "fetched_at": "2026-08-28T04:05:22.766436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/XSnow"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.766436+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.766436+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.766436+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:38:15.139988+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "296fa8c38f41c18c0e12e939dd78406f9223bf9c9ae31bf570824f50e9dd8b4a", "fetched_at": "2026-08-28T04:05:22.766436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/XSnow"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.766436+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.766436+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:38:15.139988+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "296fa8c38f41c18c0e12e939dd78406f9223bf9c9ae31bf570824f50e9dd8b4a", "fetched_at": "2026-08-28T04:05:22.766436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/XSnow"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:38:15.139988+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "296fa8c38f41c18c0e12e939dd78406f9223bf9c9ae31bf570824f50e9dd8b4a", "fetched_at": "2026-08-28T04:05:22.766436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/XSnow"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:38:15.139988+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "296fa8c38f41c18c0e12e939dd78406f9223bf9c9ae31bf570824f50e9dd8b4a", "fetched_at": "2026-08-28T04:05:22.766436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/XSnow"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:38:15.139988+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "296fa8c38f41c18c0e12e939dd78406f9223bf9c9ae31bf570824f50e9dd8b4a", "fetched_at": "2026-08-28T04:05:22.766436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xiaoyaoyou1212/XSnow"}], "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": 3516, "days_push": 2970, "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}}