{"adoption": {"forks": 328, "observed_at": "2026-08-28T04:05:24.550543+00:00", "stars": 1703}, "canonical_url": "https://ross.abutalabs.com/products/flowsurface", "card": {"archived": false, "artifact_type": "application", "description": "A native desktop charting platform for crypto markets", "domain": ["fintech", "data-visualization", "desktop-applications"], "enriched": true, "function": ["data-visualization", "charts", "gui", "websocket", "http-client"], "health_score": 98, "homepage": "https://flowsurface.com/", "language": "Rust", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["flowsurface-rs/flowsurface"], "name": "flowsurface-rs/flowsurface", "platform": ["windows", "rust", "cross-platform"], "pushed_at": "2026-08-18T09:59:27+00:00", "repo": "flowsurface-rs/flowsurface", "stars": 1703, "tags": ["orderflow", "crypto-trading", "footprint-charts", "dom-heatmap", "orderbook", "iced", "market-microstructure", "trading-tools", "cryptocurrency", "trading", "linux", "macos", "desktop"], "topics": ["orderbook-tick-data", "iced", "cryptocurrency"], "urls": [], "use_cases": ["visualize crypto orderbook liquidity with a historical DOM heatmap", "view footprint charts with trade clustering and imbalance studies", "watch live trades and L2 orderbook depth on a DOM ladder", "monitor real-time crypto market microstructure locally", "compare multiple crypto instruments on normalized percentage charts", "set up multi-monitor chart layouts with linked panes", "backfill historical trades from Binance archives for footprint analysis"], "what_it_is": "Flowsurface is an open-source native desktop charting application for crypto markets, built in Rust with the iced GUI framework. It provides orderflow analysis tools including historical DOM heatmaps, footprint charts, depth ladders, and time & sales, streaming directly from exchange public APIs like Binance, Bybit, Hyperliquid, OKX, and MEXC.", "when_to_avoid": ["you need charting for traditional markets like stocks or forex", "you want a web-based or mobile charting solution", "you need built-in order execution or trading bot functionality", "you require exchanges not currently supported by the app"], "when_to_choose": ["you want a free, open-source, local alternative to paid orderflow platforms like Exocharts or Quantower", "you need low-latency, lightweight desktop charting for crypto derivatives", "you value privacy and want data streamed directly from exchanges without third-party servers", "you want customizable themes, layouts, and multi-window support for market analysis"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/flowsurface", "repo": "flowsurface-rs/flowsurface", "role": "main", "score": 84}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.550543+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:37:37.795021+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8af00c1304da862cd0f6d0dfdaeefebb570b27095c874b3d3efbfd6cc2cd83d", "fetched_at": "2026-08-28T04:05:24.550543+00:00", "kind": "readme", "missing": false, "url": "https://github.com/flowsurface-rs/flowsurface"}, {"content_hash": "b928cd65cb8e2e287b0947e06e77ab2fd736b244b9ff87217fd4760b9f490d54", "fetched_at": "2026-08-29T11:11:58.298570+00:00", "kind": "homepage", "missing": false, "url": "https://flowsurface.com/"}, {"content_hash": "0576dba5d38feebd7449283c806f39ca8c2ee0df054ed7adbb4db4fc21c76fb7", "fetched_at": "2026-08-29T11:11:58.308090+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/flowsurface"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.550543+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:37:37.795021+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8af00c1304da862cd0f6d0dfdaeefebb570b27095c874b3d3efbfd6cc2cd83d", "fetched_at": "2026-08-28T04:05:24.550543+00:00", "kind": "readme", "missing": false, "url": "https://github.com/flowsurface-rs/flowsurface"}, {"content_hash": "b928cd65cb8e2e287b0947e06e77ab2fd736b244b9ff87217fd4760b9f490d54", "fetched_at": "2026-08-29T11:11:58.298570+00:00", "kind": "homepage", "missing": false, "url": "https://flowsurface.com/"}, {"content_hash": "0576dba5d38feebd7449283c806f39ca8c2ee0df054ed7adbb4db4fc21c76fb7", "fetched_at": "2026-08-29T11:11:58.308090+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/flowsurface"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:37:37.795021+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8af00c1304da862cd0f6d0dfdaeefebb570b27095c874b3d3efbfd6cc2cd83d", "fetched_at": "2026-08-28T04:05:24.550543+00:00", "kind": "readme", "missing": false, "url": "https://github.com/flowsurface-rs/flowsurface"}, {"content_hash": "b928cd65cb8e2e287b0947e06e77ab2fd736b244b9ff87217fd4760b9f490d54", "fetched_at": "2026-08-29T11:11:58.298570+00:00", "kind": "homepage", "missing": false, "url": "https://flowsurface.com/"}, {"content_hash": "0576dba5d38feebd7449283c806f39ca8c2ee0df054ed7adbb4db4fc21c76fb7", "fetched_at": "2026-08-29T11:11:58.308090+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/flowsurface"}], "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:24.550543+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.550543+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.550543+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:37:37.795021+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8af00c1304da862cd0f6d0dfdaeefebb570b27095c874b3d3efbfd6cc2cd83d", "fetched_at": "2026-08-28T04:05:24.550543+00:00", "kind": "readme", "missing": false, "url": "https://github.com/flowsurface-rs/flowsurface"}, {"content_hash": "b928cd65cb8e2e287b0947e06e77ab2fd736b244b9ff87217fd4760b9f490d54", "fetched_at": "2026-08-29T11:11:58.298570+00:00", "kind": "homepage", "missing": false, "url": "https://flowsurface.com/"}, {"content_hash": "0576dba5d38feebd7449283c806f39ca8c2ee0df054ed7adbb4db4fc21c76fb7", "fetched_at": "2026-08-29T11:11:58.308090+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/flowsurface"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.550543+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.550543+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:37:37.795021+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8af00c1304da862cd0f6d0dfdaeefebb570b27095c874b3d3efbfd6cc2cd83d", "fetched_at": "2026-08-28T04:05:24.550543+00:00", "kind": "readme", "missing": false, "url": "https://github.com/flowsurface-rs/flowsurface"}, {"content_hash": "b928cd65cb8e2e287b0947e06e77ab2fd736b244b9ff87217fd4760b9f490d54", "fetched_at": "2026-08-29T11:11:58.298570+00:00", "kind": "homepage", "missing": false, "url": "https://flowsurface.com/"}, {"content_hash": "0576dba5d38feebd7449283c806f39ca8c2ee0df054ed7adbb4db4fc21c76fb7", "fetched_at": "2026-08-29T11:11:58.308090+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/flowsurface"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.550543+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.550543+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.550543+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:37:37.795021+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8af00c1304da862cd0f6d0dfdaeefebb570b27095c874b3d3efbfd6cc2cd83d", "fetched_at": "2026-08-28T04:05:24.550543+00:00", "kind": "readme", "missing": false, "url": "https://github.com/flowsurface-rs/flowsurface"}, {"content_hash": "b928cd65cb8e2e287b0947e06e77ab2fd736b244b9ff87217fd4760b9f490d54", "fetched_at": "2026-08-29T11:11:58.298570+00:00", "kind": "homepage", "missing": false, "url": "https://flowsurface.com/"}, {"content_hash": "0576dba5d38feebd7449283c806f39ca8c2ee0df054ed7adbb4db4fc21c76fb7", "fetched_at": "2026-08-29T11:11:58.308090+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/flowsurface"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.550543+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.550543+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:37:37.795021+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8af00c1304da862cd0f6d0dfdaeefebb570b27095c874b3d3efbfd6cc2cd83d", "fetched_at": "2026-08-28T04:05:24.550543+00:00", "kind": "readme", "missing": false, "url": "https://github.com/flowsurface-rs/flowsurface"}, {"content_hash": "b928cd65cb8e2e287b0947e06e77ab2fd736b244b9ff87217fd4760b9f490d54", "fetched_at": "2026-08-29T11:11:58.298570+00:00", "kind": "homepage", "missing": false, "url": "https://flowsurface.com/"}, {"content_hash": "0576dba5d38feebd7449283c806f39ca8c2ee0df054ed7adbb4db4fc21c76fb7", "fetched_at": "2026-08-29T11:11:58.308090+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/flowsurface"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:37:37.795021+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8af00c1304da862cd0f6d0dfdaeefebb570b27095c874b3d3efbfd6cc2cd83d", "fetched_at": "2026-08-28T04:05:24.550543+00:00", "kind": "readme", "missing": false, "url": "https://github.com/flowsurface-rs/flowsurface"}, {"content_hash": "b928cd65cb8e2e287b0947e06e77ab2fd736b244b9ff87217fd4760b9f490d54", "fetched_at": "2026-08-29T11:11:58.298570+00:00", "kind": "homepage", "missing": false, "url": "https://flowsurface.com/"}, {"content_hash": "0576dba5d38feebd7449283c806f39ca8c2ee0df054ed7adbb4db4fc21c76fb7", "fetched_at": "2026-08-29T11:11:58.308090+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/flowsurface"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:37:37.795021+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8af00c1304da862cd0f6d0dfdaeefebb570b27095c874b3d3efbfd6cc2cd83d", "fetched_at": "2026-08-28T04:05:24.550543+00:00", "kind": "readme", "missing": false, "url": "https://github.com/flowsurface-rs/flowsurface"}, {"content_hash": "b928cd65cb8e2e287b0947e06e77ab2fd736b244b9ff87217fd4760b9f490d54", "fetched_at": "2026-08-29T11:11:58.298570+00:00", "kind": "homepage", "missing": false, "url": "https://flowsurface.com/"}, {"content_hash": "0576dba5d38feebd7449283c806f39ca8c2ee0df054ed7adbb4db4fc21c76fb7", "fetched_at": "2026-08-29T11:11:58.308090+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/flowsurface"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:37:37.795021+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b8af00c1304da862cd0f6d0dfdaeefebb570b27095c874b3d3efbfd6cc2cd83d", "fetched_at": "2026-08-28T04:05:24.550543+00:00", "kind": "readme", "missing": false, "url": "https://github.com/flowsurface-rs/flowsurface"}, {"content_hash": "b928cd65cb8e2e287b0947e06e77ab2fd736b244b9ff87217fd4760b9f490d54", "fetched_at": "2026-08-29T11:11:58.298570+00:00", "kind": "homepage", "missing": false, "url": "https://flowsurface.com/"}, {"content_hash": "0576dba5d38feebd7449283c806f39ca8c2ee0df054ed7adbb4db4fc21c76fb7", "fetched_at": "2026-08-29T11:11:58.308090+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/flowsurface"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 63, "rhythm": 78}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 882, "days_push": 15, "days_rel": 71, "gap_med": 60.0, "n_releases_24m": 9}, "score": 84, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}