{"adoption": {"forks": 102, "observed_at": "2026-08-28T04:03:56.911449+00:00", "stars": 1196}, "canonical_url": "https://ross.abutalabs.com/products/kkyon-botflow", "card": {"archived": false, "artifact_type": "framework", "description": "Python Fast Dataflow programming  framework for Data pipeline work( Web Crawler,Machine Learning,Quantitative Trading.etc)", "domain": ["crawlers", "big-data", "fintech"], "enriched": true, "function": ["web-scraping", "etl", "streaming", "concurrency", "workflow-automation", "machine-learning", "trading"], "health_score": 59, "homepage": "http://botflow.readthedocs.io", "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "experimental", "member_repos": ["kkyon/botflow"], "name": "kkyon/botflow", "platform": ["python", "cross-platform"], "pushed_at": "2026-02-03T02:17:56+00:00", "repo": "kkyon/botflow", "stars": 1196, "tags": ["dataflow-programming", "pipelines", "asyncio", "coroutines", "graphviz-visualization", "replayable-pipelines", "data-engineering", "automation"], "topics": [], "urls": [], "use_cases": ["build data pipelines in python", "parallel web crawler framework", "stream data processing with asyncio", "aggregate bitcoin prices from exchanges", "visualize dataflow graph of pipeline", "replay pipeline from failed node during development"], "what_it_is": "Botflow is a Python dataflow programming framework for building data pipelines using pipes and routes, with parallelism via coroutines and thread pools. It supports use cases like web crawling, machine learning, and quantitative trading, and can render pipeline graphs with Graphviz.", "when_to_avoid": ["you need a mature, production-hardened framework (project is alpha)", "you need REST/websocket serving or online ML model serving (only on roadmap)", "you prefer actively maintained alternatives like Airflow or Prefect"], "when_to_choose": ["you want unix-pipe-style dataflow programming in Python", "you need parallel stream processing with asyncio and thread pools", "you want replayable pipelines to speed up development iteration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/kkyon-botflow", "repo": "kkyon/botflow", "role": "main", "score": 62}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.911449+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:22:02.880586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "08f1dd9f9c21eda0acf5a5626849e82851535df46fe6b8c54b83de60942c9660", "fetched_at": "2026-08-28T04:03:56.911449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kkyon/botflow"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.911449+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:22:02.880586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "08f1dd9f9c21eda0acf5a5626849e82851535df46fe6b8c54b83de60942c9660", "fetched_at": "2026-08-28T04:03:56.911449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kkyon/botflow"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:22:02.880586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "08f1dd9f9c21eda0acf5a5626849e82851535df46fe6b8c54b83de60942c9660", "fetched_at": "2026-08-28T04:03:56.911449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kkyon/botflow"}], "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:56.911449+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.911449+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.911449+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:22:02.880586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "08f1dd9f9c21eda0acf5a5626849e82851535df46fe6b8c54b83de60942c9660", "fetched_at": "2026-08-28T04:03:56.911449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kkyon/botflow"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.911449+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.911449+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:22:02.880586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "08f1dd9f9c21eda0acf5a5626849e82851535df46fe6b8c54b83de60942c9660", "fetched_at": "2026-08-28T04:03:56.911449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kkyon/botflow"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.911449+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.911449+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.911449+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:22:02.880586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "08f1dd9f9c21eda0acf5a5626849e82851535df46fe6b8c54b83de60942c9660", "fetched_at": "2026-08-28T04:03:56.911449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kkyon/botflow"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.911449+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:56.911449+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:22:02.880586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "08f1dd9f9c21eda0acf5a5626849e82851535df46fe6b8c54b83de60942c9660", "fetched_at": "2026-08-28T04:03:56.911449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kkyon/botflow"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:22:02.880586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "08f1dd9f9c21eda0acf5a5626849e82851535df46fe6b8c54b83de60942c9660", "fetched_at": "2026-08-28T04:03:56.911449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kkyon/botflow"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:22:02.880586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "08f1dd9f9c21eda0acf5a5626849e82851535df46fe6b8c54b83de60942c9660", "fetched_at": "2026-08-28T04:03:56.911449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kkyon/botflow"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:22:02.880586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "08f1dd9f9c21eda0acf5a5626849e82851535df46fe6b8c54b83de60942c9660", "fetched_at": "2026-08-28T04:03:56.911449+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kkyon/botflow"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 65, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2935, "days_push": 212, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 62, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}