{"adoption": {"forks": 512, "observed_at": "2026-08-28T04:03:55.199080+00:00", "stars": 1187}, "canonical_url": "https://ross.abutalabs.com/products/smsgate", "card": {"archived": false, "artifact_type": "framework", "description": "这是一个在netty4框架下实现的三网合一短信网关核心框架，支持(cmpp/smpp3.4/sgip1.2/smgp3) 短信协议解析，支持长短信合并和拆分，也支持wap短信和闪信。", "domain": ["backend", "developer-tools"], "enriched": true, "function": ["networking", "serialization", "parser", "middleware", "developer-tools"], "health_score": 83, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["Lihuanghe/SMSGate"], "name": "Lihuanghe/SMSGate", "platform": ["jvm", "cross-platform"], "pushed_at": "2026-07-04T05:43:24+00:00", "repo": "Lihuanghe/SMSGate", "stars": 1187, "tags": ["sms-gateway", "cmpp", "smpp", "sgip", "smgp", "netty4", "long-sms", "flash-sms", "wap-push", "telecom-protocols", "messaging", "telecommunications"], "topics": ["cmpp", "smpp", "netty4", "sms", "sgip", "smgp"], "urls": [], "use_cases": ["send SMS via CMPP/SMPP/SGIP/SMGP from Java", "build an SMS gateway server supporting multiple telecom protocols", "parse and handle SMS protocol messages over TCP long connections", "split and merge long SMS messages automatically", "send flash SMS and WAP push messages", "wrap SMS protocols behind an HTTP API", "receive delivery reports and uplink SMS"], "what_it_is": "SMSGate is a Java framework built on Netty 4 that implements the core of a unified SMS gateway supporting CMPP, SMPP 3.4, SGIP 1.2, and SMGP 3 protocols. It handles protocol parsing, long SMS splitting and merging, WAP push, and flash SMS, with client and server endpoint abstractions.", "when_to_avoid": ["you only need simple HTTP-based SMS sending via a provider API", "you are not on the JVM", "you need a turnkey commercial SMS platform with billing and user management", "you need protocols outside CMPP/SMPP/SGIP/SMGP"], "when_to_choose": ["you need to integrate with Chinese carrier SMS gateways (CMPP, SGIP, SMGP) or SMPP in Java", "you want a Netty-based high-throughput SMS protocol framework", "you need long SMS segmentation handled transparently", "you are building a custom SMS gateway or http-to-cmpp bridge"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/smsgate", "repo": "Lihuanghe/SMSGate", "role": "main", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.199080+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:23:40.522538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9541ab49a069ccdca2018da31205967e2b188bf49ce979f7d2336a099c469897", "fetched_at": "2026-08-28T04:03:55.199080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lihuanghe/SMSGate"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.199080+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:23:40.522538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9541ab49a069ccdca2018da31205967e2b188bf49ce979f7d2336a099c469897", "fetched_at": "2026-08-28T04:03:55.199080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lihuanghe/SMSGate"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:23:40.522538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9541ab49a069ccdca2018da31205967e2b188bf49ce979f7d2336a099c469897", "fetched_at": "2026-08-28T04:03:55.199080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lihuanghe/SMSGate"}], "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:03:55.199080+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.199080+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.199080+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:23:40.522538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9541ab49a069ccdca2018da31205967e2b188bf49ce979f7d2336a099c469897", "fetched_at": "2026-08-28T04:03:55.199080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lihuanghe/SMSGate"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.199080+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.199080+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:23:40.522538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9541ab49a069ccdca2018da31205967e2b188bf49ce979f7d2336a099c469897", "fetched_at": "2026-08-28T04:03:55.199080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lihuanghe/SMSGate"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.199080+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.199080+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.199080+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:23:40.522538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9541ab49a069ccdca2018da31205967e2b188bf49ce979f7d2336a099c469897", "fetched_at": "2026-08-28T04:03:55.199080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lihuanghe/SMSGate"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.199080+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:55.199080+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:23:40.522538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9541ab49a069ccdca2018da31205967e2b188bf49ce979f7d2336a099c469897", "fetched_at": "2026-08-28T04:03:55.199080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lihuanghe/SMSGate"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:23:40.522538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9541ab49a069ccdca2018da31205967e2b188bf49ce979f7d2336a099c469897", "fetched_at": "2026-08-28T04:03:55.199080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lihuanghe/SMSGate"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:23:40.522538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9541ab49a069ccdca2018da31205967e2b188bf49ce979f7d2336a099c469897", "fetched_at": "2026-08-28T04:03:55.199080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lihuanghe/SMSGate"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:23:40.522538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9541ab49a069ccdca2018da31205967e2b188bf49ce979f7d2336a099c469897", "fetched_at": "2026-08-28T04:03:55.199080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Lihuanghe/SMSGate"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 90, "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": 4057, "days_push": 60, "days_rel": 706, "gap_med": null, "n_releases_24m": 1}, "score": 63, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}