{"adoption": {"forks": 146, "observed_at": "2026-08-28T04:04:31.562781+00:00", "stars": 1368}, "canonical_url": "https://ross.abutalabs.com/products/gradienthq-parallax", "card": {"archived": false, "artifact_type": "framework", "description": "Parallax is a distributed model serving framework that lets you build your own AI cluster anywhere", "domain": ["large-language-models", "microservices", "artificial-intelligence", "self-hosted", "machine-learning"], "enriched": true, "function": ["llm-inference", "agent-framework", "chatbot", "rpc", "scheduling"], "health_score": 90, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "experimental", "member_repos": ["GradientHQ/parallax"], "name": "GradientHQ/parallax", "platform": ["python", "cross-platform", "self-hosted"], "pushed_at": "2026-07-01T07:35:43+00:00", "repo": "GradientHQ/parallax", "stars": 1368, "tags": ["decentralized-inference", "pipeline-parallelism", "model-sharding", "p2p-networking", "llm-serving", "ai-cluster", "kv-cache", "continuous-batching", "macos", "linux", "docker"], "topics": ["chatbot", "distributed-systems", "kimi", "llama", "llm", "qwen", "oss-gpt", "large-language-models", "python", "pytorch", "decentralized-inference", "blackwell", "transformer", "llm-serving", "glm", "minimax", "deepseek"], "urls": [], "use_cases": ["host a local LLM across my own devices", "build a private AI cluster from spare machines", "serve large models that don't fit on one GPU", "run decentralized LLM inference without a datacenter", "shard an LLM across Mac and Linux nodes", "self-host a chatbot backend on consumer hardware"], "what_it_is": "Parallax is a distributed model serving framework that lets you build your own AI cluster across heterogeneous, geographically dispersed devices. It shards LLMs via pipeline parallelism and uses P2P communication to serve models like Llama, Qwen, and DeepSeek on personal hardware.", "when_to_avoid": ["you need a single-GPU, single-node inference server with minimal setup", "you require battle-tested, production-grade serving at massive scale", "you need low-latency inference where P2P network hops would hurt performance"], "when_to_choose": ["you want to pool GPUs across multiple machines or locations to serve large LLMs", "you need decentralized, self-hosted inference without centralized cloud infrastructure", "your nodes have heterogeneous hardware and you need dynamic scheduling and routing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/gradienthq-parallax", "repo": "GradientHQ/parallax", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.562781+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:41:01.961919+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "512c9c123c050fae4bec5adc8a03f1a85a3d44340ea5db13d0782b414cdfbf67", "fetched_at": "2026-08-28T04:04:31.562781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GradientHQ/parallax"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.562781+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:41:01.961919+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "512c9c123c050fae4bec5adc8a03f1a85a3d44340ea5db13d0782b414cdfbf67", "fetched_at": "2026-08-28T04:04:31.562781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GradientHQ/parallax"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:41:01.961919+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "512c9c123c050fae4bec5adc8a03f1a85a3d44340ea5db13d0782b414cdfbf67", "fetched_at": "2026-08-28T04:04:31.562781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GradientHQ/parallax"}], "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:04:31.562781+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.562781+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.562781+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:41:01.961919+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "512c9c123c050fae4bec5adc8a03f1a85a3d44340ea5db13d0782b414cdfbf67", "fetched_at": "2026-08-28T04:04:31.562781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GradientHQ/parallax"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.562781+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.562781+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:41:01.961919+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "512c9c123c050fae4bec5adc8a03f1a85a3d44340ea5db13d0782b414cdfbf67", "fetched_at": "2026-08-28T04:04:31.562781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GradientHQ/parallax"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.562781+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.562781+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.562781+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:41:01.961919+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "512c9c123c050fae4bec5adc8a03f1a85a3d44340ea5db13d0782b414cdfbf67", "fetched_at": "2026-08-28T04:04:31.562781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GradientHQ/parallax"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.562781+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.562781+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:41:01.961919+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "512c9c123c050fae4bec5adc8a03f1a85a3d44340ea5db13d0782b414cdfbf67", "fetched_at": "2026-08-28T04:04:31.562781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GradientHQ/parallax"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:41:01.961919+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "512c9c123c050fae4bec5adc8a03f1a85a3d44340ea5db13d0782b414cdfbf67", "fetched_at": "2026-08-28T04:04:31.562781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GradientHQ/parallax"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:41:01.961919+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "512c9c123c050fae4bec5adc8a03f1a85a3d44340ea5db13d0782b414cdfbf67", "fetched_at": "2026-08-28T04:04:31.562781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GradientHQ/parallax"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:41:01.961919+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "512c9c123c050fae4bec5adc8a03f1a85a3d44340ea5db13d0782b414cdfbf67", "fetched_at": "2026-08-28T04:04:31.562781+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GradientHQ/parallax"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 90, "longevity": 24, "rhythm": 59}, "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": 345, "days_push": 63, "days_rel": 274, "gap_med": 14, "n_releases_24m": 4}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}