{"adoption": {"forks": 212, "observed_at": "2026-08-28T04:04:03.329097+00:00", "stars": 1227}, "canonical_url": "https://ross.abutalabs.com/products/mixpush", "card": {"archived": false, "artifact_type": "library", "description": "Android 混合推送SDK，快速集成6个厂商推送，共享系统推送通道，杀死也能收到推送，推送到达率90%以上", "domain": ["mobile-development", "android-tools", "messaging-platforms"], "enriched": true, "function": ["sdk", "message-queue", "developer-tools"], "health_score": 54, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["taoweiji/MixPush"], "name": "taoweiji/MixPush", "platform": ["jvm", "self-hosted"], "pushed_at": "2025-12-15T11:17:50+00:00", "repo": "taoweiji/MixPush", "stars": 1227, "tags": ["push-notifications", "vendor-push", "xiaomi-push", "huawei-push", "meizu-push", "oppo-push", "vivo-push", "apns", "notification-delivery", "chinese-android-ecosystem", "android"], "topics": ["mixpush", "push", "joyrun", "mipush", "getui", "android"], "urls": [], "use_cases": ["send push notifications to Android users in China without keeping the app alive in background", "integrate Xiaomi, Huawei, OPPO, VIVO, and Meizu push with minimal code", "improve push notification delivery rate on Chinese Android phones", "replace commercial push SDKs that inject ads into notifications", "send pushes to iOS via APNs or Xiaomi APNs proxy", "broadcast notifications to all app users or tagged segments"], "what_it_is": "MixPush is an Android SDK that unifies integration with six vendor push platforms (Xiaomi, Huawei, Meizu, OPPO, VIVO, and Apple APNs) behind a single API. It leverages system-level vendor push channels so notifications arrive even when the app is killed, achieving delivery rates above 90%, and includes Java server-side code for sending pushes.", "when_to_avoid": ["your app targets only Google Play devices where FCM is the standard", "you need a turnkey hosted push service with no backend work", "you cannot register vendor push accounts (most require a company entity)", "you need transparent pass-through messages on vendors that do not support them"], "when_to_choose": ["your Android app targets Chinese device vendors with system push channels", "you need high delivery rates even when the app process is killed", "you want to avoid ad-injecting free commercial push SDKs", "you want one unified API instead of integrating six vendor SDKs yourself"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mixpush", "repo": "taoweiji/MixPush", "role": "main", "score": 48}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.329097+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:15:16.890641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c70f42910996be46d301764198395afe2a7baaa07d2f54bef648f1a8168c919", "fetched_at": "2026-08-28T04:04:03.329097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taoweiji/MixPush"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.329097+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:15:16.890641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c70f42910996be46d301764198395afe2a7baaa07d2f54bef648f1a8168c919", "fetched_at": "2026-08-28T04:04:03.329097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taoweiji/MixPush"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:15:16.890641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c70f42910996be46d301764198395afe2a7baaa07d2f54bef648f1a8168c919", "fetched_at": "2026-08-28T04:04:03.329097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taoweiji/MixPush"}], "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:03.329097+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.329097+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.329097+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:15:16.890641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c70f42910996be46d301764198395afe2a7baaa07d2f54bef648f1a8168c919", "fetched_at": "2026-08-28T04:04:03.329097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taoweiji/MixPush"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.329097+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.329097+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:15:16.890641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c70f42910996be46d301764198395afe2a7baaa07d2f54bef648f1a8168c919", "fetched_at": "2026-08-28T04:04:03.329097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taoweiji/MixPush"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.329097+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.329097+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.329097+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:15:16.890641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c70f42910996be46d301764198395afe2a7baaa07d2f54bef648f1a8168c919", "fetched_at": "2026-08-28T04:04:03.329097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taoweiji/MixPush"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.329097+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.329097+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:15:16.890641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c70f42910996be46d301764198395afe2a7baaa07d2f54bef648f1a8168c919", "fetched_at": "2026-08-28T04:04:03.329097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taoweiji/MixPush"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:15:16.890641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c70f42910996be46d301764198395afe2a7baaa07d2f54bef648f1a8168c919", "fetched_at": "2026-08-28T04:04:03.329097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taoweiji/MixPush"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:15:16.890641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c70f42910996be46d301764198395afe2a7baaa07d2f54bef648f1a8168c919", "fetched_at": "2026-08-28T04:04:03.329097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taoweiji/MixPush"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:15:16.890641+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2c70f42910996be46d301764198395afe2a7baaa07d2f54bef648f1a8168c919", "fetched_at": "2026-08-28T04:04:03.329097+00:00", "kind": "readme", "missing": false, "url": "https://github.com/taoweiji/MixPush"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 57, "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": 3379, "days_push": 261, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 48, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}