{"adoption": {"forks": 1384, "observed_at": "2026-08-28T04:09:34.909880+00:00", "stars": 6085}, "canonical_url": "https://ross.abutalabs.com/products/mobileimsdk", "card": {"archived": false, "artifact_type": "framework", "description": "原创全平台IM通信层框架，轻量级、高度提炼，历经10年、久经考验。可能是市面上唯一同时支持UDP+TCP+WebSocket三种协议的同类开源框架，支持 iOS、Android、Java、H5、小程序、Uniapp、鸿蒙Next，服务端基于Netty。", "domain": ["mobile-development", "cross-platform", "developer-tools"], "enriched": true, "function": ["websocket", "rpc", "message-queue", "networking", "sdk"], "health_score": 94, "homepage": "http://www.52im.net/forum-89-1.html", "language": "Objective-C", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["JackJiang2011/MobileIMSDK"], "name": "JackJiang2011/MobileIMSDK", "platform": ["cross-platform", "jvm"], "pushed_at": "2026-08-24T03:16:24+00:00", "repo": "JackJiang2011/MobileIMSDK", "stars": 6085, "tags": ["im", "instant-messaging", "netty", "udp", "tcp", "push-notifications", "uniapp", "mini-programs", "chat-transport-layer", "messaging", "real-time", "android", "ios", "web-server", "mobile", "harmonyos"], "topics": ["im", "udp", "push", "netty", "nio", "tcp", "websocket", "uniapp", "harmonyos-next", "html5", "socket"], "urls": [], "use_cases": ["build a mobile chat app with a custom IM backend", "add real-time message push to Android and iOS apps", "implement cross-platform instant messaging with UDP TCP and WebSocket support", "self-host an IM server based on Netty", "add live messaging to H5 web apps and WeChat mini-programs", "integrate IM into Uniapp or HarmonyOS Next applications"], "what_it_is": "MobileIMSDK is an original, lightweight cross-platform instant messaging (IM) communication-layer framework refined over 10 years. It uniquely supports UDP, TCP, and WebSocket protocols, with clients for iOS, Android, Java, H5, WeChat mini-programs, Uniapp, and HarmonyOS Next, and a Netty-based server.", "when_to_avoid": ["you want a full-featured chat UI and business logic out of the box - this is only the communication layer", "you need built-in server clustering, which requires custom work", "you prefer a managed cloud IM service with no server maintenance"], "when_to_choose": ["you need a battle-tested, lightweight IM transport layer across many platforms", "you want protocol flexibility across UDP, TCP, and WebSocket", "you need a self-hosted alternative to commercial IM SDKs like RongCloud or Huanxin", "you target niche platforms like HarmonyOS Next or WeChat mini-programs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mobileimsdk", "repo": "JackJiang2011/MobileIMSDK", "role": "main", "score": 69}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.909880+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:48:19.125524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0311bf3247a0b550968bd0612cb1e101d5692029d20047fda8f0e00584031d8f", "fetched_at": "2026-08-28T04:09:34.909880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JackJiang2011/MobileIMSDK"}, {"content_hash": "6196886cbe24dde2fcd9c0133b63b899f5f1f58bfb365c54c0c64307c4886eee", "fetched_at": "2026-08-29T08:45:05.950469+00:00", "kind": "homepage", "missing": false, "url": "http://www.52im.net/forum-89-1.html"}, {"content_hash": "e73559e46460943ff9092cc030e0d8e4cb9136cc88510a4cdd080751a2103e11", "fetched_at": "2026-08-29T08:45:05.984898+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-about.html?mobile=no"}, {"content_hash": "36f94409b8fd96e29f2bfc60a11b0e84982c6b5330f7a65f7c468b25b8407f04", "fetched_at": "2026-08-29T08:45:05.987367+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-docs.html?mobile=no"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.909880+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:48:19.125524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0311bf3247a0b550968bd0612cb1e101d5692029d20047fda8f0e00584031d8f", "fetched_at": "2026-08-28T04:09:34.909880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JackJiang2011/MobileIMSDK"}, {"content_hash": "6196886cbe24dde2fcd9c0133b63b899f5f1f58bfb365c54c0c64307c4886eee", "fetched_at": "2026-08-29T08:45:05.950469+00:00", "kind": "homepage", "missing": false, "url": "http://www.52im.net/forum-89-1.html"}, {"content_hash": "e73559e46460943ff9092cc030e0d8e4cb9136cc88510a4cdd080751a2103e11", "fetched_at": "2026-08-29T08:45:05.984898+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-about.html?mobile=no"}, {"content_hash": "36f94409b8fd96e29f2bfc60a11b0e84982c6b5330f7a65f7c468b25b8407f04", "fetched_at": "2026-08-29T08:45:05.987367+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-docs.html?mobile=no"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:48:19.125524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0311bf3247a0b550968bd0612cb1e101d5692029d20047fda8f0e00584031d8f", "fetched_at": "2026-08-28T04:09:34.909880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JackJiang2011/MobileIMSDK"}, {"content_hash": "6196886cbe24dde2fcd9c0133b63b899f5f1f58bfb365c54c0c64307c4886eee", "fetched_at": "2026-08-29T08:45:05.950469+00:00", "kind": "homepage", "missing": false, "url": "http://www.52im.net/forum-89-1.html"}, {"content_hash": "e73559e46460943ff9092cc030e0d8e4cb9136cc88510a4cdd080751a2103e11", "fetched_at": "2026-08-29T08:45:05.984898+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-about.html?mobile=no"}, {"content_hash": "36f94409b8fd96e29f2bfc60a11b0e84982c6b5330f7a65f7c468b25b8407f04", "fetched_at": "2026-08-29T08:45:05.987367+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-docs.html?mobile=no"}], "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:34.909880+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.909880+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.909880+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:48:19.125524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0311bf3247a0b550968bd0612cb1e101d5692029d20047fda8f0e00584031d8f", "fetched_at": "2026-08-28T04:09:34.909880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JackJiang2011/MobileIMSDK"}, {"content_hash": "6196886cbe24dde2fcd9c0133b63b899f5f1f58bfb365c54c0c64307c4886eee", "fetched_at": "2026-08-29T08:45:05.950469+00:00", "kind": "homepage", "missing": false, "url": "http://www.52im.net/forum-89-1.html"}, {"content_hash": "e73559e46460943ff9092cc030e0d8e4cb9136cc88510a4cdd080751a2103e11", "fetched_at": "2026-08-29T08:45:05.984898+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-about.html?mobile=no"}, {"content_hash": "36f94409b8fd96e29f2bfc60a11b0e84982c6b5330f7a65f7c468b25b8407f04", "fetched_at": "2026-08-29T08:45:05.987367+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-docs.html?mobile=no"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.909880+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.909880+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:48:19.125524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0311bf3247a0b550968bd0612cb1e101d5692029d20047fda8f0e00584031d8f", "fetched_at": "2026-08-28T04:09:34.909880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JackJiang2011/MobileIMSDK"}, {"content_hash": "6196886cbe24dde2fcd9c0133b63b899f5f1f58bfb365c54c0c64307c4886eee", "fetched_at": "2026-08-29T08:45:05.950469+00:00", "kind": "homepage", "missing": false, "url": "http://www.52im.net/forum-89-1.html"}, {"content_hash": "e73559e46460943ff9092cc030e0d8e4cb9136cc88510a4cdd080751a2103e11", "fetched_at": "2026-08-29T08:45:05.984898+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-about.html?mobile=no"}, {"content_hash": "36f94409b8fd96e29f2bfc60a11b0e84982c6b5330f7a65f7c468b25b8407f04", "fetched_at": "2026-08-29T08:45:05.987367+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-docs.html?mobile=no"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.909880+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.909880+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.909880+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:48:19.125524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0311bf3247a0b550968bd0612cb1e101d5692029d20047fda8f0e00584031d8f", "fetched_at": "2026-08-28T04:09:34.909880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JackJiang2011/MobileIMSDK"}, {"content_hash": "6196886cbe24dde2fcd9c0133b63b899f5f1f58bfb365c54c0c64307c4886eee", "fetched_at": "2026-08-29T08:45:05.950469+00:00", "kind": "homepage", "missing": false, "url": "http://www.52im.net/forum-89-1.html"}, {"content_hash": "e73559e46460943ff9092cc030e0d8e4cb9136cc88510a4cdd080751a2103e11", "fetched_at": "2026-08-29T08:45:05.984898+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-about.html?mobile=no"}, {"content_hash": "36f94409b8fd96e29f2bfc60a11b0e84982c6b5330f7a65f7c468b25b8407f04", "fetched_at": "2026-08-29T08:45:05.987367+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-docs.html?mobile=no"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.909880+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:34.909880+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:48:19.125524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0311bf3247a0b550968bd0612cb1e101d5692029d20047fda8f0e00584031d8f", "fetched_at": "2026-08-28T04:09:34.909880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JackJiang2011/MobileIMSDK"}, {"content_hash": "6196886cbe24dde2fcd9c0133b63b899f5f1f58bfb365c54c0c64307c4886eee", "fetched_at": "2026-08-29T08:45:05.950469+00:00", "kind": "homepage", "missing": false, "url": "http://www.52im.net/forum-89-1.html"}, {"content_hash": "e73559e46460943ff9092cc030e0d8e4cb9136cc88510a4cdd080751a2103e11", "fetched_at": "2026-08-29T08:45:05.984898+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-about.html?mobile=no"}, {"content_hash": "36f94409b8fd96e29f2bfc60a11b0e84982c6b5330f7a65f7c468b25b8407f04", "fetched_at": "2026-08-29T08:45:05.987367+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-docs.html?mobile=no"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:48:19.125524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0311bf3247a0b550968bd0612cb1e101d5692029d20047fda8f0e00584031d8f", "fetched_at": "2026-08-28T04:09:34.909880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JackJiang2011/MobileIMSDK"}, {"content_hash": "6196886cbe24dde2fcd9c0133b63b899f5f1f58bfb365c54c0c64307c4886eee", "fetched_at": "2026-08-29T08:45:05.950469+00:00", "kind": "homepage", "missing": false, "url": "http://www.52im.net/forum-89-1.html"}, {"content_hash": "e73559e46460943ff9092cc030e0d8e4cb9136cc88510a4cdd080751a2103e11", "fetched_at": "2026-08-29T08:45:05.984898+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-about.html?mobile=no"}, {"content_hash": "36f94409b8fd96e29f2bfc60a11b0e84982c6b5330f7a65f7c468b25b8407f04", "fetched_at": "2026-08-29T08:45:05.987367+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-docs.html?mobile=no"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:48:19.125524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0311bf3247a0b550968bd0612cb1e101d5692029d20047fda8f0e00584031d8f", "fetched_at": "2026-08-28T04:09:34.909880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JackJiang2011/MobileIMSDK"}, {"content_hash": "6196886cbe24dde2fcd9c0133b63b899f5f1f58bfb365c54c0c64307c4886eee", "fetched_at": "2026-08-29T08:45:05.950469+00:00", "kind": "homepage", "missing": false, "url": "http://www.52im.net/forum-89-1.html"}, {"content_hash": "e73559e46460943ff9092cc030e0d8e4cb9136cc88510a4cdd080751a2103e11", "fetched_at": "2026-08-29T08:45:05.984898+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-about.html?mobile=no"}, {"content_hash": "36f94409b8fd96e29f2bfc60a11b0e84982c6b5330f7a65f7c468b25b8407f04", "fetched_at": "2026-08-29T08:45:05.987367+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-docs.html?mobile=no"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:48:19.125524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0311bf3247a0b550968bd0612cb1e101d5692029d20047fda8f0e00584031d8f", "fetched_at": "2026-08-28T04:09:34.909880+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JackJiang2011/MobileIMSDK"}, {"content_hash": "6196886cbe24dde2fcd9c0133b63b899f5f1f58bfb365c54c0c64307c4886eee", "fetched_at": "2026-08-29T08:45:05.950469+00:00", "kind": "homepage", "missing": false, "url": "http://www.52im.net/forum-89-1.html"}, {"content_hash": "e73559e46460943ff9092cc030e0d8e4cb9136cc88510a4cdd080751a2103e11", "fetched_at": "2026-08-29T08:45:05.984898+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-about.html?mobile=no"}, {"content_hash": "36f94409b8fd96e29f2bfc60a11b0e84982c6b5330f7a65f7c468b25b8407f04", "fetched_at": "2026-08-29T08:45:05.987367+00:00", "kind": "site_page", "missing": false, "url": "http://www.52im.net/topic-docs.html?mobile=no"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 12}, "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": 3983, "days_push": 9, "days_rel": 379, "gap_med": 224, "n_releases_24m": 2}, "score": 69, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}