{"adoption": {"forks": 132, "observed_at": "2026-08-28T04:03:32.481915+00:00", "stars": 1088}, "canonical_url": "https://ross.abutalabs.com/products/kschart", "card": {"archived": false, "artifact_type": "library", "description": "k线图/kline/kchart，已经集成MA/EMA/MACD/KDJ/BOLL/RSI/WR/AVG等指标，新增指标及其方便。适用于股票/区块链交易所等种类App。Swift5编写，CPU/内存占用率极低，60FPS稳定运行。示例集成websocket，并接入币安数据（需VPN）。", "domain": ["fintech", "mobile-development", "frontend"], "enriched": true, "function": ["data-visualization", "charts", "websocket"], "health_score": 36, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["sevtin/KSChart"], "name": "sevtin/KSChart", "platform": [], "pushed_at": "2025-06-11T00:53:44+00:00", "repo": "sevtin/KSChart", "stars": 1088, "tags": ["kline", "candlestick-chart", "stock-chart", "trading", "swift", "technical-indicators", "macd", "boll", "kdj", "rsi", "cryptocurrency", "ios"], "topics": ["kline", "share", "stock", "kchart", "candle", "swift", "btc", "eth", "ios", "macd", "boll", "kdj", "chart"], "urls": [], "use_cases": ["render candlestick charts in an iOS stock trading app", "display kline charts with MACD and KDJ indicators", "build a crypto exchange app with real-time Binance data over websocket", "add custom technical indicators to a candlestick chart", "show time-share (intraday) charts with low memory footprint"], "what_it_is": "A Swift library for rendering candlestick (K-line) charts on iOS, with built-in technical indicators like MA, EMA, MACD, KDJ, BOLL, RSI, WR, and AVG. It uses CAShapeLayer and CATextLayer for efficient drawing, achieving stable 60FPS with low CPU and memory usage, and is suited for stock and cryptocurrency exchange apps.", "when_to_avoid": ["you need charts on Android or cross-platform", "you need general-purpose charts (bar, pie, line) rather than financial candlestick charts", "your project is not written in Swift or targets older iOS toolchains"], "when_to_choose": ["you need a native iOS Swift candlestick chart library with common technical indicators built in", "performance matters - you need 60FPS scrolling with low CPU/memory usage", "you're building a stock or cryptocurrency trading app on iOS"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/kschart", "repo": "sevtin/KSChart", "role": "main", "score": 44}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.481915+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.102886+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82d09eb47752e48756b79e6e0cc8c13c05ff26552f3ff625fb6f8b81fdc96ec1", "fetched_at": "2026-08-28T04:03:32.481915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sevtin/KSChart"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.481915+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.102886+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82d09eb47752e48756b79e6e0cc8c13c05ff26552f3ff625fb6f8b81fdc96ec1", "fetched_at": "2026-08-28T04:03:32.481915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sevtin/KSChart"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.102886+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82d09eb47752e48756b79e6e0cc8c13c05ff26552f3ff625fb6f8b81fdc96ec1", "fetched_at": "2026-08-28T04:03:32.481915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sevtin/KSChart"}], "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:32.481915+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.481915+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.481915+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.102886+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82d09eb47752e48756b79e6e0cc8c13c05ff26552f3ff625fb6f8b81fdc96ec1", "fetched_at": "2026-08-28T04:03:32.481915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sevtin/KSChart"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.481915+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.481915+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.102886+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82d09eb47752e48756b79e6e0cc8c13c05ff26552f3ff625fb6f8b81fdc96ec1", "fetched_at": "2026-08-28T04:03:32.481915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sevtin/KSChart"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.481915+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.481915+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.481915+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.102886+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82d09eb47752e48756b79e6e0cc8c13c05ff26552f3ff625fb6f8b81fdc96ec1", "fetched_at": "2026-08-28T04:03:32.481915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sevtin/KSChart"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.481915+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.481915+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.102886+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82d09eb47752e48756b79e6e0cc8c13c05ff26552f3ff625fb6f8b81fdc96ec1", "fetched_at": "2026-08-28T04:03:32.481915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sevtin/KSChart"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.102886+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82d09eb47752e48756b79e6e0cc8c13c05ff26552f3ff625fb6f8b81fdc96ec1", "fetched_at": "2026-08-28T04:03:32.481915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sevtin/KSChart"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.102886+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82d09eb47752e48756b79e6e0cc8c13c05ff26552f3ff625fb6f8b81fdc96ec1", "fetched_at": "2026-08-28T04:03:32.481915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sevtin/KSChart"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:49:23.102886+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "82d09eb47752e48756b79e6e0cc8c13c05ff26552f3ff625fb6f8b81fdc96ec1", "fetched_at": "2026-08-28T04:03:32.481915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sevtin/KSChart"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 26, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2473, "days_push": 449, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 44, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}