{"adoption": {"forks": 1331, "observed_at": "2026-08-28T04:10:46.176759+00:00", "stars": 11133}, "canonical_url": "https://ross.abutalabs.com/products/perspective", "card": {"archived": false, "artifact_type": "library", "description": "A data visualization and analytics component, especially well-suited for large and/or streaming datasets.", "domain": ["data-visualization", "analytics", "data-science", "web-development"], "enriched": true, "function": ["data-visualization", "analytics", "streaming", "charts", "web-scraping"], "health_score": 100, "homepage": "http://perspective-dev.github.io/", "language": "Rust", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["perspective-dev/perspective"], "name": "perspective-dev/perspective", "platform": ["browser", "python", "rust", "wasm", "cross-platform"], "pushed_at": "2026-08-26T21:31:56+00:00", "repo": "perspective-dev/perspective", "stars": 11133, "tags": ["web-components", "jupyter", "webgl", "apache-arrow", "dashboards", "business-intelligence", "react-bindings", "query-engine", "real-time", "web-server", "nodejs"], "topics": ["webassembly", "data-visualization", "real-time", "analytics", "javascript", "python", "bi", "jupyter"], "urls": [], "use_cases": ["build interactive dashboards for streaming data", "visualize large datasets in the browser", "explore data in Jupyter notebooks", "create user-configurable reports and BI views", "stream server-side data to a virtualized browser grid", "render real-time charts with WebGL"], "what_it_is": "Perspective is an interactive analytics and data visualization component for large, real-time, and streaming datasets, built around a high-performance streaming query engine written in C++/Rust and compiled to WebAssembly, Python, Node.js, and Rust. It ships a web-component UI with an editable data grid, WebGL charts, and geographic maps, plus a symmetric client/server API over WebSocket or in-process bindings.", "when_to_avoid": ["you need static one-off charts in a simple report", "you require a full enterprise BI suite with scheduling and access control", "your datasets are small and a simple plotting library suffices"], "when_to_choose": ["you need real-time analytics over large or streaming datasets", "you want a embeddable, user-configurable grid and chart UI", "you need the same API in Python, JavaScript, and Rust", "you want in-browser analytics via WebAssembly without a backend"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/perspective", "repo": "perspective-dev/perspective", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.176759+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:16:46.238811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ccfe6f0ba6c71adafe955b6008227db1a2d7974ea1bb6aaebdcf796ffde7db70", "fetched_at": "2026-08-28T04:10:46.176759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perspective-dev/perspective"}, {"content_hash": "a56a4bdb0136926d8798219b25d1a5bd3d3ad916c8916a73deadfd149737f8f5", "fetched_at": "2026-08-29T08:15:19.888865+00:00", "kind": "homepage", "missing": false, "url": "http://perspective-dev.github.io/"}, {"content_hash": "72d19557d0c5dae728132ba1aa81bbf166f02033f459adb9592d5f41e5c7ab55", "fetched_at": "2026-08-29T08:15:19.898496+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/perspective"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.176759+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:16:46.238811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ccfe6f0ba6c71adafe955b6008227db1a2d7974ea1bb6aaebdcf796ffde7db70", "fetched_at": "2026-08-28T04:10:46.176759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perspective-dev/perspective"}, {"content_hash": "a56a4bdb0136926d8798219b25d1a5bd3d3ad916c8916a73deadfd149737f8f5", "fetched_at": "2026-08-29T08:15:19.888865+00:00", "kind": "homepage", "missing": false, "url": "http://perspective-dev.github.io/"}, {"content_hash": "72d19557d0c5dae728132ba1aa81bbf166f02033f459adb9592d5f41e5c7ab55", "fetched_at": "2026-08-29T08:15:19.898496+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/perspective"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:16:46.238811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ccfe6f0ba6c71adafe955b6008227db1a2d7974ea1bb6aaebdcf796ffde7db70", "fetched_at": "2026-08-28T04:10:46.176759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perspective-dev/perspective"}, {"content_hash": "a56a4bdb0136926d8798219b25d1a5bd3d3ad916c8916a73deadfd149737f8f5", "fetched_at": "2026-08-29T08:15:19.888865+00:00", "kind": "homepage", "missing": false, "url": "http://perspective-dev.github.io/"}, {"content_hash": "72d19557d0c5dae728132ba1aa81bbf166f02033f459adb9592d5f41e5c7ab55", "fetched_at": "2026-08-29T08:15:19.898496+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/perspective"}], "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:10:46.176759+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.176759+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.176759+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:16:46.238811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ccfe6f0ba6c71adafe955b6008227db1a2d7974ea1bb6aaebdcf796ffde7db70", "fetched_at": "2026-08-28T04:10:46.176759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perspective-dev/perspective"}, {"content_hash": "a56a4bdb0136926d8798219b25d1a5bd3d3ad916c8916a73deadfd149737f8f5", "fetched_at": "2026-08-29T08:15:19.888865+00:00", "kind": "homepage", "missing": false, "url": "http://perspective-dev.github.io/"}, {"content_hash": "72d19557d0c5dae728132ba1aa81bbf166f02033f459adb9592d5f41e5c7ab55", "fetched_at": "2026-08-29T08:15:19.898496+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/perspective"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.176759+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.176759+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:16:46.238811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ccfe6f0ba6c71adafe955b6008227db1a2d7974ea1bb6aaebdcf796ffde7db70", "fetched_at": "2026-08-28T04:10:46.176759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perspective-dev/perspective"}, {"content_hash": "a56a4bdb0136926d8798219b25d1a5bd3d3ad916c8916a73deadfd149737f8f5", "fetched_at": "2026-08-29T08:15:19.888865+00:00", "kind": "homepage", "missing": false, "url": "http://perspective-dev.github.io/"}, {"content_hash": "72d19557d0c5dae728132ba1aa81bbf166f02033f459adb9592d5f41e5c7ab55", "fetched_at": "2026-08-29T08:15:19.898496+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/perspective"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.176759+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.176759+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.176759+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:16:46.238811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ccfe6f0ba6c71adafe955b6008227db1a2d7974ea1bb6aaebdcf796ffde7db70", "fetched_at": "2026-08-28T04:10:46.176759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perspective-dev/perspective"}, {"content_hash": "a56a4bdb0136926d8798219b25d1a5bd3d3ad916c8916a73deadfd149737f8f5", "fetched_at": "2026-08-29T08:15:19.888865+00:00", "kind": "homepage", "missing": false, "url": "http://perspective-dev.github.io/"}, {"content_hash": "72d19557d0c5dae728132ba1aa81bbf166f02033f459adb9592d5f41e5c7ab55", "fetched_at": "2026-08-29T08:15:19.898496+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/perspective"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.176759+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:46.176759+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:16:46.238811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ccfe6f0ba6c71adafe955b6008227db1a2d7974ea1bb6aaebdcf796ffde7db70", "fetched_at": "2026-08-28T04:10:46.176759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perspective-dev/perspective"}, {"content_hash": "a56a4bdb0136926d8798219b25d1a5bd3d3ad916c8916a73deadfd149737f8f5", "fetched_at": "2026-08-29T08:15:19.888865+00:00", "kind": "homepage", "missing": false, "url": "http://perspective-dev.github.io/"}, {"content_hash": "72d19557d0c5dae728132ba1aa81bbf166f02033f459adb9592d5f41e5c7ab55", "fetched_at": "2026-08-29T08:15:19.898496+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/perspective"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:16:46.238811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ccfe6f0ba6c71adafe955b6008227db1a2d7974ea1bb6aaebdcf796ffde7db70", "fetched_at": "2026-08-28T04:10:46.176759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perspective-dev/perspective"}, {"content_hash": "a56a4bdb0136926d8798219b25d1a5bd3d3ad916c8916a73deadfd149737f8f5", "fetched_at": "2026-08-29T08:15:19.888865+00:00", "kind": "homepage", "missing": false, "url": "http://perspective-dev.github.io/"}, {"content_hash": "72d19557d0c5dae728132ba1aa81bbf166f02033f459adb9592d5f41e5c7ab55", "fetched_at": "2026-08-29T08:15:19.898496+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/perspective"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:16:46.238811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ccfe6f0ba6c71adafe955b6008227db1a2d7974ea1bb6aaebdcf796ffde7db70", "fetched_at": "2026-08-28T04:10:46.176759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perspective-dev/perspective"}, {"content_hash": "a56a4bdb0136926d8798219b25d1a5bd3d3ad916c8916a73deadfd149737f8f5", "fetched_at": "2026-08-29T08:15:19.888865+00:00", "kind": "homepage", "missing": false, "url": "http://perspective-dev.github.io/"}, {"content_hash": "72d19557d0c5dae728132ba1aa81bbf166f02033f459adb9592d5f41e5c7ab55", "fetched_at": "2026-08-29T08:15:19.898496+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/perspective"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:16:46.238811+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ccfe6f0ba6c71adafe955b6008227db1a2d7974ea1bb6aaebdcf796ffde7db70", "fetched_at": "2026-08-28T04:10:46.176759+00:00", "kind": "readme", "missing": false, "url": "https://github.com/perspective-dev/perspective"}, {"content_hash": "a56a4bdb0136926d8798219b25d1a5bd3d3ad916c8916a73deadfd149737f8f5", "fetched_at": "2026-08-29T08:15:19.888865+00:00", "kind": "homepage", "missing": false, "url": "http://perspective-dev.github.io/"}, {"content_hash": "72d19557d0c5dae728132ba1aa81bbf166f02033f459adb9592d5f41e5c7ab55", "fetched_at": "2026-08-29T08:15:19.898496+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/perspective"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 99}, "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": 3226, "days_push": 7, "days_rel": 8, "gap_med": 11, "n_releases_24m": 46}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}