{"adoption": {"forks": 174, "observed_at": "2026-08-28T04:04:38.530800+00:00", "stars": 1408}, "canonical_url": "https://ross.abutalabs.com/products/pg-strom", "card": {"archived": false, "artifact_type": "library", "description": "PG-Strom - Master development repository", "domain": ["databases", "analytics", "big-data", "gpu-computing"], "enriched": true, "function": ["database", "gpu-computing", "search-engine"], "health_score": 79, "homepage": "http://heterodb.github.io/pg-strom/", "language": "C", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["heterodb/pg-strom"], "name": "heterodb/pg-strom", "platform": ["self-hosted"], "pushed_at": "2026-08-20T15:51:47+00:00", "repo": "heterodb/pg-strom", "stars": 1408, "tags": ["postgresql-extension", "gpu-acceleration", "sql-analytics", "apache-arrow", "gpudirect", "nvme-ssd", "columnar-storage", "linux", "gpu"], "topics": [], "urls": [], "use_cases": ["accelerate analytical SQL queries on PostgreSQL with a GPU", "run large-scale aggregations and batch processing faster", "query Apache Arrow columnar files via PostgreSQL foreign data wrapper", "read NVMe-SSD data directly into the GPU bypassing CPU and RAM", "offload WHERE-clause scans, joins, and GROUP BY to GPU cores", "speed up PostGIS spatial functions and GiST index searches on GPU"], "what_it_is": "PG-Strom is a PostgreSQL extension that accelerates SQL analytics and batch workloads using GPU devices, NVMe-SSD storage, and Apache Arrow columnar files. It transparently offloads scans, joins, and aggregations to the GPU, including GPUDirect SQL that reads data from NVMe storage directly to the GPU.", "when_to_avoid": ["your workload is mostly small OLTP transactions rather than analytics", "you have no NVIDIA GPU or NVMe-SSD hardware available", "you need a fully managed or cloud-native database solution", "you require frequent per-row updates on columnar Arrow data"], "when_to_choose": ["you have heavy analytics or batch SQL workloads on PostgreSQL and GPU hardware available", "you want transparent GPU acceleration without rewriting applications", "you need to aggregate or search very large datasets stored as Apache Arrow files", "your bottleneck is scan/join/aggregation throughput on big data"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pg-strom", "repo": "heterodb/pg-strom", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.530800+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:38:35.407717+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "034c774741b6b367e0126b4571a4e89d12c2f527bba35b8408570ddb9f2b964a", "fetched_at": "2026-08-28T04:04:38.530800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heterodb/pg-strom"}, {"content_hash": "b8450f461fc2e282f6df374ff2ca52053b9a6c64542b08d52862bd292cac4f4e", "fetched_at": "2026-08-29T11:52:02.933471+00:00", "kind": "homepage", "missing": false, "url": "http://heterodb.github.io/pg-strom/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.530800+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:38:35.407717+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "034c774741b6b367e0126b4571a4e89d12c2f527bba35b8408570ddb9f2b964a", "fetched_at": "2026-08-28T04:04:38.530800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heterodb/pg-strom"}, {"content_hash": "b8450f461fc2e282f6df374ff2ca52053b9a6c64542b08d52862bd292cac4f4e", "fetched_at": "2026-08-29T11:52:02.933471+00:00", "kind": "homepage", "missing": false, "url": "http://heterodb.github.io/pg-strom/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:38:35.407717+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "034c774741b6b367e0126b4571a4e89d12c2f527bba35b8408570ddb9f2b964a", "fetched_at": "2026-08-28T04:04:38.530800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heterodb/pg-strom"}, {"content_hash": "b8450f461fc2e282f6df374ff2ca52053b9a6c64542b08d52862bd292cac4f4e", "fetched_at": "2026-08-29T11:52:02.933471+00:00", "kind": "homepage", "missing": false, "url": "http://heterodb.github.io/pg-strom/"}], "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:38.530800+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.530800+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.530800+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:38:35.407717+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "034c774741b6b367e0126b4571a4e89d12c2f527bba35b8408570ddb9f2b964a", "fetched_at": "2026-08-28T04:04:38.530800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heterodb/pg-strom"}, {"content_hash": "b8450f461fc2e282f6df374ff2ca52053b9a6c64542b08d52862bd292cac4f4e", "fetched_at": "2026-08-29T11:52:02.933471+00:00", "kind": "homepage", "missing": false, "url": "http://heterodb.github.io/pg-strom/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.530800+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.530800+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:38:35.407717+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "034c774741b6b367e0126b4571a4e89d12c2f527bba35b8408570ddb9f2b964a", "fetched_at": "2026-08-28T04:04:38.530800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heterodb/pg-strom"}, {"content_hash": "b8450f461fc2e282f6df374ff2ca52053b9a6c64542b08d52862bd292cac4f4e", "fetched_at": "2026-08-29T11:52:02.933471+00:00", "kind": "homepage", "missing": false, "url": "http://heterodb.github.io/pg-strom/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.530800+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.530800+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.530800+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:38:35.407717+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "034c774741b6b367e0126b4571a4e89d12c2f527bba35b8408570ddb9f2b964a", "fetched_at": "2026-08-28T04:04:38.530800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heterodb/pg-strom"}, {"content_hash": "b8450f461fc2e282f6df374ff2ca52053b9a6c64542b08d52862bd292cac4f4e", "fetched_at": "2026-08-29T11:52:02.933471+00:00", "kind": "homepage", "missing": false, "url": "http://heterodb.github.io/pg-strom/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.530800+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.530800+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:38:35.407717+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "034c774741b6b367e0126b4571a4e89d12c2f527bba35b8408570ddb9f2b964a", "fetched_at": "2026-08-28T04:04:38.530800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heterodb/pg-strom"}, {"content_hash": "b8450f461fc2e282f6df374ff2ca52053b9a6c64542b08d52862bd292cac4f4e", "fetched_at": "2026-08-29T11:52:02.933471+00:00", "kind": "homepage", "missing": false, "url": "http://heterodb.github.io/pg-strom/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:38:35.407717+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "034c774741b6b367e0126b4571a4e89d12c2f527bba35b8408570ddb9f2b964a", "fetched_at": "2026-08-28T04:04:38.530800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heterodb/pg-strom"}, {"content_hash": "b8450f461fc2e282f6df374ff2ca52053b9a6c64542b08d52862bd292cac4f4e", "fetched_at": "2026-08-29T11:52:02.933471+00:00", "kind": "homepage", "missing": false, "url": "http://heterodb.github.io/pg-strom/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:38:35.407717+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "034c774741b6b367e0126b4571a4e89d12c2f527bba35b8408570ddb9f2b964a", "fetched_at": "2026-08-28T04:04:38.530800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heterodb/pg-strom"}, {"content_hash": "b8450f461fc2e282f6df374ff2ca52053b9a6c64542b08d52862bd292cac4f4e", "fetched_at": "2026-08-29T11:52:02.933471+00:00", "kind": "homepage", "missing": false, "url": "http://heterodb.github.io/pg-strom/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:38:35.407717+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "034c774741b6b367e0126b4571a4e89d12c2f527bba35b8408570ddb9f2b964a", "fetched_at": "2026-08-28T04:04:38.530800+00:00", "kind": "readme", "missing": false, "url": "https://github.com/heterodb/pg-strom"}, {"content_hash": "b8450f461fc2e282f6df374ff2ca52053b9a6c64542b08d52862bd292cac4f4e", "fetched_at": "2026-08-29T11:52:02.933471+00:00", "kind": "homepage", "missing": false, "url": "http://heterodb.github.io/pg-strom/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+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": 4529, "days_push": 13, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}