{"adoption": {"forks": 846, "observed_at": "2026-08-28T04:10:02.382021+00:00", "stars": 7682}, "canonical_url": "https://ross.abutalabs.com/products/undici", "card": {"archived": false, "artifact_type": "library", "description": "An HTTP/1.1 client, written from scratch for Node.js", "domain": ["web-development", "backend", "apis", "developer-tools"], "enriched": true, "function": ["http-client", "web-framework", "testing", "mocking"], "health_score": 100, "homepage": "https://undici.nodejs.org/", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["nodejs/undici"], "name": "nodejs/undici", "platform": [], "pushed_at": "2026-08-26T00:05:06+00:00", "repo": "nodejs/undici", "stars": 7682, "tags": ["http1.1", "fetch", "websocket", "eventsource", "connection-pooling", "proxy-support", "whatwg-standards", "high-performance", "nodejs", "javascript"], "topics": ["nodejs", "http", "client"], "urls": [], "use_cases": ["make fast HTTP requests from Node.js", "replace Node's built-in fetch with a faster implementation", "polyfill fetch and web standard APIs globally", "pool and reuse HTTP connections for high throughput", "make requests through HTTP or SOCKS5 proxies", "mock HTTP requests in tests", "stream HTTP response bodies", "retry failed requests automatically"], "what_it_is": "Undici is a fast HTTP/1.1 client library for Node.js, written from scratch, that also provides WHATWG-compliant fetch, WebSocket, EventSource, and related web standard implementations. It offers low-level dispatchers (Client, Pool, Agent), proxy support, interceptors, and mocking utilities for testing.", "when_to_avoid": ["you only need simple, occasional HTTP requests and built-in fetch suffices", "you need HTTP/2 or HTTP/3 client features as the primary protocol", "you are not on Node.js", "you need a browser-side HTTP client"], "when_to_choose": ["you need maximum HTTP client performance in Node.js with pipelining and keep-alive", "you want consistent, spec-compliant fetch/WebSocket/EventSource behavior across Node versions", "you need fine-grained control over connections, pooling, proxies, or retries", "you want to mock HTTP calls in your test suite"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/undici", "repo": "nodejs/undici", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.382021+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:36:02.571877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "908eb4acab191abdeaaf765ceef3a1e1a8330c879beb74c9d04e538e3934e8a2", "fetched_at": "2026-08-28T04:10:02.382021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nodejs/undici"}, {"content_hash": "7fea70f8c554fc37d36beb028e533a0819ea7a4e861cbc9781479b603aba27b8", "fetched_at": "2026-08-29T08:32:05.865812+00:00", "kind": "homepage", "missing": false, "url": "https://undici.nodejs.org/"}, {"content_hash": "6d9fccdb9ff7aab020a41e3eeadd87cca880a277518b7761a0f21fad7bb796bf", "fetched_at": "2026-08-29T08:32:05.875788+00:00", "kind": "site_page", "missing": false, "url": "https://nodejs.org/about"}, {"content_hash": "73a3faef99a828a23d6829c984a72346a497238b60059f1442fc82ff804b9553", "fetched_at": "2026-08-29T08:32:05.879498+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/getting-started"}, {"content_hash": "fbd447c69e64f43073641354098d5ddb8b29b4da9e5624636f40bf7f3d629979", "fetched_at": "2026-08-29T08:32:05.881294+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/api/GlobalInstallation"}, {"content_hash": "f4354a57fc83e680bfa58d20f1e538d8e9c7257307844a93b31e7a39ef01c58b", "fetched_at": "2026-08-29T08:32:05.884479+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/docs/docs/api/Dispatcher.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.382021+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:36:02.571877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "908eb4acab191abdeaaf765ceef3a1e1a8330c879beb74c9d04e538e3934e8a2", "fetched_at": "2026-08-28T04:10:02.382021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nodejs/undici"}, {"content_hash": "7fea70f8c554fc37d36beb028e533a0819ea7a4e861cbc9781479b603aba27b8", "fetched_at": "2026-08-29T08:32:05.865812+00:00", "kind": "homepage", "missing": false, "url": "https://undici.nodejs.org/"}, {"content_hash": "6d9fccdb9ff7aab020a41e3eeadd87cca880a277518b7761a0f21fad7bb796bf", "fetched_at": "2026-08-29T08:32:05.875788+00:00", "kind": "site_page", "missing": false, "url": "https://nodejs.org/about"}, {"content_hash": "73a3faef99a828a23d6829c984a72346a497238b60059f1442fc82ff804b9553", "fetched_at": "2026-08-29T08:32:05.879498+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/getting-started"}, {"content_hash": "fbd447c69e64f43073641354098d5ddb8b29b4da9e5624636f40bf7f3d629979", "fetched_at": "2026-08-29T08:32:05.881294+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/api/GlobalInstallation"}, {"content_hash": "f4354a57fc83e680bfa58d20f1e538d8e9c7257307844a93b31e7a39ef01c58b", "fetched_at": "2026-08-29T08:32:05.884479+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/docs/docs/api/Dispatcher.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:36:02.571877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "908eb4acab191abdeaaf765ceef3a1e1a8330c879beb74c9d04e538e3934e8a2", "fetched_at": "2026-08-28T04:10:02.382021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nodejs/undici"}, {"content_hash": "7fea70f8c554fc37d36beb028e533a0819ea7a4e861cbc9781479b603aba27b8", "fetched_at": "2026-08-29T08:32:05.865812+00:00", "kind": "homepage", "missing": false, "url": "https://undici.nodejs.org/"}, {"content_hash": "6d9fccdb9ff7aab020a41e3eeadd87cca880a277518b7761a0f21fad7bb796bf", "fetched_at": "2026-08-29T08:32:05.875788+00:00", "kind": "site_page", "missing": false, "url": "https://nodejs.org/about"}, {"content_hash": "73a3faef99a828a23d6829c984a72346a497238b60059f1442fc82ff804b9553", "fetched_at": "2026-08-29T08:32:05.879498+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/getting-started"}, {"content_hash": "fbd447c69e64f43073641354098d5ddb8b29b4da9e5624636f40bf7f3d629979", "fetched_at": "2026-08-29T08:32:05.881294+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/api/GlobalInstallation"}, {"content_hash": "f4354a57fc83e680bfa58d20f1e538d8e9c7257307844a93b31e7a39ef01c58b", "fetched_at": "2026-08-29T08:32:05.884479+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/docs/docs/api/Dispatcher.html"}], "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:02.382021+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.382021+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.382021+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:36:02.571877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "908eb4acab191abdeaaf765ceef3a1e1a8330c879beb74c9d04e538e3934e8a2", "fetched_at": "2026-08-28T04:10:02.382021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nodejs/undici"}, {"content_hash": "7fea70f8c554fc37d36beb028e533a0819ea7a4e861cbc9781479b603aba27b8", "fetched_at": "2026-08-29T08:32:05.865812+00:00", "kind": "homepage", "missing": false, "url": "https://undici.nodejs.org/"}, {"content_hash": "6d9fccdb9ff7aab020a41e3eeadd87cca880a277518b7761a0f21fad7bb796bf", "fetched_at": "2026-08-29T08:32:05.875788+00:00", "kind": "site_page", "missing": false, "url": "https://nodejs.org/about"}, {"content_hash": "73a3faef99a828a23d6829c984a72346a497238b60059f1442fc82ff804b9553", "fetched_at": "2026-08-29T08:32:05.879498+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/getting-started"}, {"content_hash": "fbd447c69e64f43073641354098d5ddb8b29b4da9e5624636f40bf7f3d629979", "fetched_at": "2026-08-29T08:32:05.881294+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/api/GlobalInstallation"}, {"content_hash": "f4354a57fc83e680bfa58d20f1e538d8e9c7257307844a93b31e7a39ef01c58b", "fetched_at": "2026-08-29T08:32:05.884479+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/docs/docs/api/Dispatcher.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.382021+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.382021+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:36:02.571877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "908eb4acab191abdeaaf765ceef3a1e1a8330c879beb74c9d04e538e3934e8a2", "fetched_at": "2026-08-28T04:10:02.382021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nodejs/undici"}, {"content_hash": "7fea70f8c554fc37d36beb028e533a0819ea7a4e861cbc9781479b603aba27b8", "fetched_at": "2026-08-29T08:32:05.865812+00:00", "kind": "homepage", "missing": false, "url": "https://undici.nodejs.org/"}, {"content_hash": "6d9fccdb9ff7aab020a41e3eeadd87cca880a277518b7761a0f21fad7bb796bf", "fetched_at": "2026-08-29T08:32:05.875788+00:00", "kind": "site_page", "missing": false, "url": "https://nodejs.org/about"}, {"content_hash": "73a3faef99a828a23d6829c984a72346a497238b60059f1442fc82ff804b9553", "fetched_at": "2026-08-29T08:32:05.879498+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/getting-started"}, {"content_hash": "fbd447c69e64f43073641354098d5ddb8b29b4da9e5624636f40bf7f3d629979", "fetched_at": "2026-08-29T08:32:05.881294+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/api/GlobalInstallation"}, {"content_hash": "f4354a57fc83e680bfa58d20f1e538d8e9c7257307844a93b31e7a39ef01c58b", "fetched_at": "2026-08-29T08:32:05.884479+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/docs/docs/api/Dispatcher.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.382021+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.382021+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.382021+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:36:02.571877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "908eb4acab191abdeaaf765ceef3a1e1a8330c879beb74c9d04e538e3934e8a2", "fetched_at": "2026-08-28T04:10:02.382021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nodejs/undici"}, {"content_hash": "7fea70f8c554fc37d36beb028e533a0819ea7a4e861cbc9781479b603aba27b8", "fetched_at": "2026-08-29T08:32:05.865812+00:00", "kind": "homepage", "missing": false, "url": "https://undici.nodejs.org/"}, {"content_hash": "6d9fccdb9ff7aab020a41e3eeadd87cca880a277518b7761a0f21fad7bb796bf", "fetched_at": "2026-08-29T08:32:05.875788+00:00", "kind": "site_page", "missing": false, "url": "https://nodejs.org/about"}, {"content_hash": "73a3faef99a828a23d6829c984a72346a497238b60059f1442fc82ff804b9553", "fetched_at": "2026-08-29T08:32:05.879498+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/getting-started"}, {"content_hash": "fbd447c69e64f43073641354098d5ddb8b29b4da9e5624636f40bf7f3d629979", "fetched_at": "2026-08-29T08:32:05.881294+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/api/GlobalInstallation"}, {"content_hash": "f4354a57fc83e680bfa58d20f1e538d8e9c7257307844a93b31e7a39ef01c58b", "fetched_at": "2026-08-29T08:32:05.884479+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/docs/docs/api/Dispatcher.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.382021+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:02.382021+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:36:02.571877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "908eb4acab191abdeaaf765ceef3a1e1a8330c879beb74c9d04e538e3934e8a2", "fetched_at": "2026-08-28T04:10:02.382021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nodejs/undici"}, {"content_hash": "7fea70f8c554fc37d36beb028e533a0819ea7a4e861cbc9781479b603aba27b8", "fetched_at": "2026-08-29T08:32:05.865812+00:00", "kind": "homepage", "missing": false, "url": "https://undici.nodejs.org/"}, {"content_hash": "6d9fccdb9ff7aab020a41e3eeadd87cca880a277518b7761a0f21fad7bb796bf", "fetched_at": "2026-08-29T08:32:05.875788+00:00", "kind": "site_page", "missing": false, "url": "https://nodejs.org/about"}, {"content_hash": "73a3faef99a828a23d6829c984a72346a497238b60059f1442fc82ff804b9553", "fetched_at": "2026-08-29T08:32:05.879498+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/getting-started"}, {"content_hash": "fbd447c69e64f43073641354098d5ddb8b29b4da9e5624636f40bf7f3d629979", "fetched_at": "2026-08-29T08:32:05.881294+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/api/GlobalInstallation"}, {"content_hash": "f4354a57fc83e680bfa58d20f1e538d8e9c7257307844a93b31e7a39ef01c58b", "fetched_at": "2026-08-29T08:32:05.884479+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/docs/docs/api/Dispatcher.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:36:02.571877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "908eb4acab191abdeaaf765ceef3a1e1a8330c879beb74c9d04e538e3934e8a2", "fetched_at": "2026-08-28T04:10:02.382021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nodejs/undici"}, {"content_hash": "7fea70f8c554fc37d36beb028e533a0819ea7a4e861cbc9781479b603aba27b8", "fetched_at": "2026-08-29T08:32:05.865812+00:00", "kind": "homepage", "missing": false, "url": "https://undici.nodejs.org/"}, {"content_hash": "6d9fccdb9ff7aab020a41e3eeadd87cca880a277518b7761a0f21fad7bb796bf", "fetched_at": "2026-08-29T08:32:05.875788+00:00", "kind": "site_page", "missing": false, "url": "https://nodejs.org/about"}, {"content_hash": "73a3faef99a828a23d6829c984a72346a497238b60059f1442fc82ff804b9553", "fetched_at": "2026-08-29T08:32:05.879498+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/getting-started"}, {"content_hash": "fbd447c69e64f43073641354098d5ddb8b29b4da9e5624636f40bf7f3d629979", "fetched_at": "2026-08-29T08:32:05.881294+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/api/GlobalInstallation"}, {"content_hash": "f4354a57fc83e680bfa58d20f1e538d8e9c7257307844a93b31e7a39ef01c58b", "fetched_at": "2026-08-29T08:32:05.884479+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/docs/docs/api/Dispatcher.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:36:02.571877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "908eb4acab191abdeaaf765ceef3a1e1a8330c879beb74c9d04e538e3934e8a2", "fetched_at": "2026-08-28T04:10:02.382021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nodejs/undici"}, {"content_hash": "7fea70f8c554fc37d36beb028e533a0819ea7a4e861cbc9781479b603aba27b8", "fetched_at": "2026-08-29T08:32:05.865812+00:00", "kind": "homepage", "missing": false, "url": "https://undici.nodejs.org/"}, {"content_hash": "6d9fccdb9ff7aab020a41e3eeadd87cca880a277518b7761a0f21fad7bb796bf", "fetched_at": "2026-08-29T08:32:05.875788+00:00", "kind": "site_page", "missing": false, "url": "https://nodejs.org/about"}, {"content_hash": "73a3faef99a828a23d6829c984a72346a497238b60059f1442fc82ff804b9553", "fetched_at": "2026-08-29T08:32:05.879498+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/getting-started"}, {"content_hash": "fbd447c69e64f43073641354098d5ddb8b29b4da9e5624636f40bf7f3d629979", "fetched_at": "2026-08-29T08:32:05.881294+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/api/GlobalInstallation"}, {"content_hash": "f4354a57fc83e680bfa58d20f1e538d8e9c7257307844a93b31e7a39ef01c58b", "fetched_at": "2026-08-29T08:32:05.884479+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/docs/docs/api/Dispatcher.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:36:02.571877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "908eb4acab191abdeaaf765ceef3a1e1a8330c879beb74c9d04e538e3934e8a2", "fetched_at": "2026-08-28T04:10:02.382021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nodejs/undici"}, {"content_hash": "7fea70f8c554fc37d36beb028e533a0819ea7a4e861cbc9781479b603aba27b8", "fetched_at": "2026-08-29T08:32:05.865812+00:00", "kind": "homepage", "missing": false, "url": "https://undici.nodejs.org/"}, {"content_hash": "6d9fccdb9ff7aab020a41e3eeadd87cca880a277518b7761a0f21fad7bb796bf", "fetched_at": "2026-08-29T08:32:05.875788+00:00", "kind": "site_page", "missing": false, "url": "https://nodejs.org/about"}, {"content_hash": "73a3faef99a828a23d6829c984a72346a497238b60059f1442fc82ff804b9553", "fetched_at": "2026-08-29T08:32:05.879498+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/getting-started"}, {"content_hash": "fbd447c69e64f43073641354098d5ddb8b29b4da9e5624636f40bf7f3d629979", "fetched_at": "2026-08-29T08:32:05.881294+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/api/GlobalInstallation"}, {"content_hash": "f4354a57fc83e680bfa58d20f1e538d8e9c7257307844a93b31e7a39ef01c58b", "fetched_at": "2026-08-29T08:32:05.884479+00:00", "kind": "site_page", "missing": false, "url": "https://undici.nodejs.org/docs/docs/api/Dispatcher.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 84}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3036, "days_push": 8, "days_rel": 30, "gap_med": 4, "n_releases_24m": 80}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}