{"adoption": {"forks": 2578, "observed_at": "2026-08-28T04:11:34.052462+00:00", "stars": 22793}, "canonical_url": "https://ross.abutalabs.com/products/ws", "card": {"archived": false, "artifact_type": "library", "description": "Simple to use, blazing fast and thoroughly tested WebSocket client and server for Node.js", "domain": ["web-development", "backend", "networking", "developer-tools"], "enriched": true, "function": ["websocket", "http-server", "middleware"], "health_score": 98, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["websockets/ws"], "name": "websockets/ws", "platform": ["cross-platform"], "pushed_at": "2026-08-13T07:38:51+00:00", "repo": "websockets/ws", "stars": 22793, "tags": ["rfc-6455", "websocket-client", "websocket-server", "websocket-compression", "real-time", "autobahn-tested", "nodejs"], "topics": ["websocket", "javascript", "websocket-client", "websocket-server", "rfc-6455", "real-time", "nodejs", "node", "websocket-compression"], "urls": [], "use_cases": ["build a websocket server in node.js", "connect to a websocket server from node.js backend", "implement real-time push messaging over websockets", "broadcast messages to connected websocket clients", "add websocket support to an existing http server", "send and receive binary data over websockets", "enable websocket compression for faster payloads"], "what_it_is": "ws is a fast, thoroughly tested WebSocket client and server library for Node.js implementing RFC 6455. It passes the extensive Autobahn test suite and supports features like permessage-deflate compression and optional native performance addons.", "when_to_avoid": ["your code runs in the browser - use the native WebSocket API instead", "you need a full real-time framework with rooms, reconnection, and fallbacks (e.g. Socket.IO)", "you are not using Node.js or a Node-compatible runtime"], "when_to_choose": ["you need a battle-tested, RFC 6455 compliant WebSocket implementation for Node.js", "you want a lightweight library without heavy framework dependencies", "you need to share an HTTP/S server between web and WebSocket traffic", "performance matters and you can use optional native addons like bufferutil"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ws", "repo": "websockets/ws", "role": "main", "score": 97}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.052462+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:56:55.506591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d42fdf1727be40bd9521f69091f1995cc0aed4e11f80517759f0c00dda025", "fetched_at": "2026-08-28T04:11:34.052462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/websockets/ws"}, {"content_hash": "0ab3a602d8b001416dc289129027a8e123c2d7629a712244aae05342b3eb389c", "fetched_at": "2026-08-29T07:55:14.140834+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ws"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.052462+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:56:55.506591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d42fdf1727be40bd9521f69091f1995cc0aed4e11f80517759f0c00dda025", "fetched_at": "2026-08-28T04:11:34.052462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/websockets/ws"}, {"content_hash": "0ab3a602d8b001416dc289129027a8e123c2d7629a712244aae05342b3eb389c", "fetched_at": "2026-08-29T07:55:14.140834+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ws"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:56:55.506591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d42fdf1727be40bd9521f69091f1995cc0aed4e11f80517759f0c00dda025", "fetched_at": "2026-08-28T04:11:34.052462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/websockets/ws"}, {"content_hash": "0ab3a602d8b001416dc289129027a8e123c2d7629a712244aae05342b3eb389c", "fetched_at": "2026-08-29T07:55:14.140834+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ws"}], "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:11:34.052462+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.052462+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.052462+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:56:55.506591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d42fdf1727be40bd9521f69091f1995cc0aed4e11f80517759f0c00dda025", "fetched_at": "2026-08-28T04:11:34.052462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/websockets/ws"}, {"content_hash": "0ab3a602d8b001416dc289129027a8e123c2d7629a712244aae05342b3eb389c", "fetched_at": "2026-08-29T07:55:14.140834+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ws"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.052462+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.052462+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:56:55.506591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d42fdf1727be40bd9521f69091f1995cc0aed4e11f80517759f0c00dda025", "fetched_at": "2026-08-28T04:11:34.052462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/websockets/ws"}, {"content_hash": "0ab3a602d8b001416dc289129027a8e123c2d7629a712244aae05342b3eb389c", "fetched_at": "2026-08-29T07:55:14.140834+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ws"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.052462+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.052462+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.052462+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:56:55.506591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d42fdf1727be40bd9521f69091f1995cc0aed4e11f80517759f0c00dda025", "fetched_at": "2026-08-28T04:11:34.052462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/websockets/ws"}, {"content_hash": "0ab3a602d8b001416dc289129027a8e123c2d7629a712244aae05342b3eb389c", "fetched_at": "2026-08-29T07:55:14.140834+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ws"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.052462+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:34.052462+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:56:55.506591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d42fdf1727be40bd9521f69091f1995cc0aed4e11f80517759f0c00dda025", "fetched_at": "2026-08-28T04:11:34.052462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/websockets/ws"}, {"content_hash": "0ab3a602d8b001416dc289129027a8e123c2d7629a712244aae05342b3eb389c", "fetched_at": "2026-08-29T07:55:14.140834+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ws"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:56:55.506591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d42fdf1727be40bd9521f69091f1995cc0aed4e11f80517759f0c00dda025", "fetched_at": "2026-08-28T04:11:34.052462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/websockets/ws"}, {"content_hash": "0ab3a602d8b001416dc289129027a8e123c2d7629a712244aae05342b3eb389c", "fetched_at": "2026-08-29T07:55:14.140834+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ws"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:56:55.506591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d42fdf1727be40bd9521f69091f1995cc0aed4e11f80517759f0c00dda025", "fetched_at": "2026-08-28T04:11:34.052462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/websockets/ws"}, {"content_hash": "0ab3a602d8b001416dc289129027a8e123c2d7629a712244aae05342b3eb389c", "fetched_at": "2026-08-29T07:55:14.140834+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ws"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:56:55.506591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d42fdf1727be40bd9521f69091f1995cc0aed4e11f80517759f0c00dda025", "fetched_at": "2026-08-28T04:11:34.052462+00:00", "kind": "readme", "missing": false, "url": "https://github.com/websockets/ws"}, {"content_hash": "0ab3a602d8b001416dc289129027a8e123c2d7629a712244aae05342b3eb389c", "fetched_at": "2026-08-29T07:55:14.140834+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ws"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 96}, "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": 5411, "days_push": 20, "days_rel": 27, "gap_med": 2.0, "n_releases_24m": 19}, "score": 97, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}