{"adoption": {"forks": 174, "observed_at": "2026-08-28T04:09:12.009494+00:00", "stars": 5194}, "canonical_url": "https://ross.abutalabs.com/products/piscina", "card": {"archived": false, "artifact_type": "library", "description": "A fast, efficient Node.js Worker Thread Pool implementation", "domain": ["developer-tools", "backend", "performance"], "enriched": true, "function": ["concurrency", "developer-tools"], "health_score": 99, "homepage": "https://piscinajs.dev", "language": "TypeScript", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["piscinajs/piscina"], "name": "piscinajs/piscina", "platform": ["cross-platform"], "pushed_at": "2026-08-21T08:41:23+00:00", "repo": "piscinajs/piscina", "stars": 5194, "tags": ["worker-threads", "thread-pool", "cpu-intensive-tasks", "typescript", "multithreading", "performance", "nodejs"], "topics": ["nodejs", "worker-threads", "pooling", "performance", "nearform-research", "multithreading", "worker-pool", "thread-pool", "piscinajs"], "urls": [], "use_cases": ["run cpu-intensive tasks in parallel in nodejs", "offload heavy computation to worker threads", "manage a pool of worker threads in node", "avoid blocking the event loop with expensive work", "parallelize image or data processing in nodejs", "track run and wait times of background tasks"], "what_it_is": "Piscina is a fast, efficient worker thread pool library for Node.js, written in TypeScript. It lets developers offload CPU-intensive tasks to a managed pool of worker threads with features like cancellation, backpressure, statistics, and custom task queues.", "when_to_avoid": ["your workload is I/O-bound rather than CPU-bound", "you are running on Bun or non-Node.js runtimes where behavior is not assured", "you need multi-process (not multi-thread) parallelism"], "when_to_choose": ["your Node.js app performs CPU-bound work that blocks the event loop", "you need a managed, configurable worker pool with cancellation and statistics", "you want ESM, CommonJS, and TypeScript support out of the box"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/piscina", "repo": "piscinajs/piscina", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:12.009494+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:01:44.435861+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "68dcf016361982cecd00cf6826458400d48f70f81b645e19fc4b607ce40dcf67", "fetched_at": "2026-08-28T04:09:12.009494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/piscinajs/piscina"}, {"content_hash": "4d0842ebdcbf93a366040a7c7388be306fea6e79ed2b0f83a49beb2119b339d9", "fetched_at": "2026-08-29T08:55:44.402881+00:00", "kind": "homepage", "missing": false, "url": "https://piscinajs.dev"}, {"content_hash": "3ef053a9f137e1e4cc6909d4ae5e9e4c758f69b4f846ea8a8676b95b6dfeeee0", "fetched_at": "2026-08-29T08:55:44.412039+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/category/getting-started"}, {"content_hash": "85c8479c966bcebf08630f51c766180a3f4c536a874652e27b580f445c652151", "fetched_at": "2026-08-29T08:55:44.413909+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/getting-started/Installation"}, {"content_hash": "d9c5d764505991798251151b23af281f731a87e76d02a4fb7d6883da3ff6925c", "fetched_at": "2026-08-29T08:55:44.415584+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/piscina"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:12.009494+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:01:44.435861+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "68dcf016361982cecd00cf6826458400d48f70f81b645e19fc4b607ce40dcf67", "fetched_at": "2026-08-28T04:09:12.009494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/piscinajs/piscina"}, {"content_hash": "4d0842ebdcbf93a366040a7c7388be306fea6e79ed2b0f83a49beb2119b339d9", "fetched_at": "2026-08-29T08:55:44.402881+00:00", "kind": "homepage", "missing": false, "url": "https://piscinajs.dev"}, {"content_hash": "3ef053a9f137e1e4cc6909d4ae5e9e4c758f69b4f846ea8a8676b95b6dfeeee0", "fetched_at": "2026-08-29T08:55:44.412039+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/category/getting-started"}, {"content_hash": "85c8479c966bcebf08630f51c766180a3f4c536a874652e27b580f445c652151", "fetched_at": "2026-08-29T08:55:44.413909+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/getting-started/Installation"}, {"content_hash": "d9c5d764505991798251151b23af281f731a87e76d02a4fb7d6883da3ff6925c", "fetched_at": "2026-08-29T08:55:44.415584+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/piscina"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:01:44.435861+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "68dcf016361982cecd00cf6826458400d48f70f81b645e19fc4b607ce40dcf67", "fetched_at": "2026-08-28T04:09:12.009494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/piscinajs/piscina"}, {"content_hash": "4d0842ebdcbf93a366040a7c7388be306fea6e79ed2b0f83a49beb2119b339d9", "fetched_at": "2026-08-29T08:55:44.402881+00:00", "kind": "homepage", "missing": false, "url": "https://piscinajs.dev"}, {"content_hash": "3ef053a9f137e1e4cc6909d4ae5e9e4c758f69b4f846ea8a8676b95b6dfeeee0", "fetched_at": "2026-08-29T08:55:44.412039+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/category/getting-started"}, {"content_hash": "85c8479c966bcebf08630f51c766180a3f4c536a874652e27b580f445c652151", "fetched_at": "2026-08-29T08:55:44.413909+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/getting-started/Installation"}, {"content_hash": "d9c5d764505991798251151b23af281f731a87e76d02a4fb7d6883da3ff6925c", "fetched_at": "2026-08-29T08:55:44.415584+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/piscina"}], "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:09:12.009494+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:12.009494+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:12.009494+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:01:44.435861+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "68dcf016361982cecd00cf6826458400d48f70f81b645e19fc4b607ce40dcf67", "fetched_at": "2026-08-28T04:09:12.009494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/piscinajs/piscina"}, {"content_hash": "4d0842ebdcbf93a366040a7c7388be306fea6e79ed2b0f83a49beb2119b339d9", "fetched_at": "2026-08-29T08:55:44.402881+00:00", "kind": "homepage", "missing": false, "url": "https://piscinajs.dev"}, {"content_hash": "3ef053a9f137e1e4cc6909d4ae5e9e4c758f69b4f846ea8a8676b95b6dfeeee0", "fetched_at": "2026-08-29T08:55:44.412039+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/category/getting-started"}, {"content_hash": "85c8479c966bcebf08630f51c766180a3f4c536a874652e27b580f445c652151", "fetched_at": "2026-08-29T08:55:44.413909+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/getting-started/Installation"}, {"content_hash": "d9c5d764505991798251151b23af281f731a87e76d02a4fb7d6883da3ff6925c", "fetched_at": "2026-08-29T08:55:44.415584+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/piscina"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:12.009494+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:12.009494+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:01:44.435861+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "68dcf016361982cecd00cf6826458400d48f70f81b645e19fc4b607ce40dcf67", "fetched_at": "2026-08-28T04:09:12.009494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/piscinajs/piscina"}, {"content_hash": "4d0842ebdcbf93a366040a7c7388be306fea6e79ed2b0f83a49beb2119b339d9", "fetched_at": "2026-08-29T08:55:44.402881+00:00", "kind": "homepage", "missing": false, "url": "https://piscinajs.dev"}, {"content_hash": "3ef053a9f137e1e4cc6909d4ae5e9e4c758f69b4f846ea8a8676b95b6dfeeee0", "fetched_at": "2026-08-29T08:55:44.412039+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/category/getting-started"}, {"content_hash": "85c8479c966bcebf08630f51c766180a3f4c536a874652e27b580f445c652151", "fetched_at": "2026-08-29T08:55:44.413909+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/getting-started/Installation"}, {"content_hash": "d9c5d764505991798251151b23af281f731a87e76d02a4fb7d6883da3ff6925c", "fetched_at": "2026-08-29T08:55:44.415584+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/piscina"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:12.009494+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:12.009494+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:12.009494+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:01:44.435861+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "68dcf016361982cecd00cf6826458400d48f70f81b645e19fc4b607ce40dcf67", "fetched_at": "2026-08-28T04:09:12.009494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/piscinajs/piscina"}, {"content_hash": "4d0842ebdcbf93a366040a7c7388be306fea6e79ed2b0f83a49beb2119b339d9", "fetched_at": "2026-08-29T08:55:44.402881+00:00", "kind": "homepage", "missing": false, "url": "https://piscinajs.dev"}, {"content_hash": "3ef053a9f137e1e4cc6909d4ae5e9e4c758f69b4f846ea8a8676b95b6dfeeee0", "fetched_at": "2026-08-29T08:55:44.412039+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/category/getting-started"}, {"content_hash": "85c8479c966bcebf08630f51c766180a3f4c536a874652e27b580f445c652151", "fetched_at": "2026-08-29T08:55:44.413909+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/getting-started/Installation"}, {"content_hash": "d9c5d764505991798251151b23af281f731a87e76d02a4fb7d6883da3ff6925c", "fetched_at": "2026-08-29T08:55:44.415584+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/piscina"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:12.009494+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:12.009494+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:01:44.435861+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "68dcf016361982cecd00cf6826458400d48f70f81b645e19fc4b607ce40dcf67", "fetched_at": "2026-08-28T04:09:12.009494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/piscinajs/piscina"}, {"content_hash": "4d0842ebdcbf93a366040a7c7388be306fea6e79ed2b0f83a49beb2119b339d9", "fetched_at": "2026-08-29T08:55:44.402881+00:00", "kind": "homepage", "missing": false, "url": "https://piscinajs.dev"}, {"content_hash": "3ef053a9f137e1e4cc6909d4ae5e9e4c758f69b4f846ea8a8676b95b6dfeeee0", "fetched_at": "2026-08-29T08:55:44.412039+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/category/getting-started"}, {"content_hash": "85c8479c966bcebf08630f51c766180a3f4c536a874652e27b580f445c652151", "fetched_at": "2026-08-29T08:55:44.413909+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/getting-started/Installation"}, {"content_hash": "d9c5d764505991798251151b23af281f731a87e76d02a4fb7d6883da3ff6925c", "fetched_at": "2026-08-29T08:55:44.415584+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/piscina"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:01:44.435861+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "68dcf016361982cecd00cf6826458400d48f70f81b645e19fc4b607ce40dcf67", "fetched_at": "2026-08-28T04:09:12.009494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/piscinajs/piscina"}, {"content_hash": "4d0842ebdcbf93a366040a7c7388be306fea6e79ed2b0f83a49beb2119b339d9", "fetched_at": "2026-08-29T08:55:44.402881+00:00", "kind": "homepage", "missing": false, "url": "https://piscinajs.dev"}, {"content_hash": "3ef053a9f137e1e4cc6909d4ae5e9e4c758f69b4f846ea8a8676b95b6dfeeee0", "fetched_at": "2026-08-29T08:55:44.412039+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/category/getting-started"}, {"content_hash": "85c8479c966bcebf08630f51c766180a3f4c536a874652e27b580f445c652151", "fetched_at": "2026-08-29T08:55:44.413909+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/getting-started/Installation"}, {"content_hash": "d9c5d764505991798251151b23af281f731a87e76d02a4fb7d6883da3ff6925c", "fetched_at": "2026-08-29T08:55:44.415584+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/piscina"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:01:44.435861+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "68dcf016361982cecd00cf6826458400d48f70f81b645e19fc4b607ce40dcf67", "fetched_at": "2026-08-28T04:09:12.009494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/piscinajs/piscina"}, {"content_hash": "4d0842ebdcbf93a366040a7c7388be306fea6e79ed2b0f83a49beb2119b339d9", "fetched_at": "2026-08-29T08:55:44.402881+00:00", "kind": "homepage", "missing": false, "url": "https://piscinajs.dev"}, {"content_hash": "3ef053a9f137e1e4cc6909d4ae5e9e4c758f69b4f846ea8a8676b95b6dfeeee0", "fetched_at": "2026-08-29T08:55:44.412039+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/category/getting-started"}, {"content_hash": "85c8479c966bcebf08630f51c766180a3f4c536a874652e27b580f445c652151", "fetched_at": "2026-08-29T08:55:44.413909+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/getting-started/Installation"}, {"content_hash": "d9c5d764505991798251151b23af281f731a87e76d02a4fb7d6883da3ff6925c", "fetched_at": "2026-08-29T08:55:44.415584+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/piscina"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:01:44.435861+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "68dcf016361982cecd00cf6826458400d48f70f81b645e19fc4b607ce40dcf67", "fetched_at": "2026-08-28T04:09:12.009494+00:00", "kind": "readme", "missing": false, "url": "https://github.com/piscinajs/piscina"}, {"content_hash": "4d0842ebdcbf93a366040a7c7388be306fea6e79ed2b0f83a49beb2119b339d9", "fetched_at": "2026-08-29T08:55:44.402881+00:00", "kind": "homepage", "missing": false, "url": "https://piscinajs.dev"}, {"content_hash": "3ef053a9f137e1e4cc6909d4ae5e9e4c758f69b4f846ea8a8676b95b6dfeeee0", "fetched_at": "2026-08-29T08:55:44.412039+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/category/getting-started"}, {"content_hash": "85c8479c966bcebf08630f51c766180a3f4c536a874652e27b580f445c652151", "fetched_at": "2026-08-29T08:55:44.413909+00:00", "kind": "site_page", "missing": false, "url": "https://piscinajs.dev/getting-started/Installation"}, {"content_hash": "d9c5d764505991798251151b23af281f731a87e76d02a4fb7d6883da3ff6925c", "fetched_at": "2026-08-29T08:55:44.415584+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/piscina"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 86}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2338, "days_push": 12, "days_rel": 12, "gap_med": 44, "n_releases_24m": 14}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}