{"adoption": {"forks": 202, "observed_at": "2026-08-28T04:07:48.057253+00:00", "stars": 3187}, "canonical_url": "https://ross.abutalabs.com/products/keyv", "card": {"archived": false, "artifact_type": "library", "description": "Simple key-value storage with support for multiple backends", "domain": ["databases", "web-development", "backend", "developer-tools"], "enriched": true, "function": ["caching", "database", "serialization", "compression"], "health_score": 100, "homepage": "https://keyv.org", "language": "TypeScript", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["jaredwray/keyv"], "name": "jaredwray/keyv", "platform": ["bun", "browser", "cross-platform"], "pushed_at": "2026-08-25T19:27:25+00:00", "repo": "jaredwray/keyv", "stars": 3187, "tags": ["key-value-store", "storage-adapters", "ttl", "cache", "redis", "sqlite", "monorepo", "nodejs", "typescript"], "topics": ["keyv", "key-value", "cache", "etcd", "memcache", "mongo", "mysql", "postgres", "redis", "sqlite", "storage"], "urls": [], "use_cases": ["add caching to a node.js app with redis or sqlite backend", "swap key-value storage backends without changing code", "store session data with ttl expiry", "cache api responses in express or fastify", "persist key-value data in cloudflare workers", "add cache support to my own npm module"], "what_it_is": "Keyv is a TypeScript key-value storage library providing a consistent interface across multiple backends via storage adapters (Redis, Postgres, MySQL, SQLite, MongoDB, Memcache, etcd, DynamoDB, Cloudflare KV, and in-memory). It supports TTL-based expiry, compression, serialization, and namespaces, making it suitable as a cache or persistent key-value store.", "when_to_avoid": ["you need complex queries, joins, or relational data", "you need a distributed cache with built-in eviction policies like a dedicated Redis deployment", "you are not in the JavaScript/TypeScript ecosystem"], "when_to_choose": ["you need a unified key-value API across many storage backends", "you want TTL-based caching in Node.js or the browser", "you want to make your library's storage backend pluggable"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/keyv", "repo": "jaredwray/keyv", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.057253+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:24:59.133993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84dd1e066e2238a30db2ee1b39eaf0f5739250fb444221de53e37b9cb3c658ae", "fetched_at": "2026-08-28T04:07:48.057253+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredwray/keyv"}, {"content_hash": "fd54892b1ed8c2610d36317efa37026469a9bed8bca48e9db8feb54ae61b41b0", "fetched_at": "2026-08-29T09:39:14.176773+00:00", "kind": "homepage", "missing": false, "url": "https://keyv.org"}, {"content_hash": "0e669f3e84ba70100366d5e4fa81f0eba16d311bd9076b09b52025ba3032d52b", "fetched_at": "2026-08-29T09:39:14.179374+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/docs"}, {"content_hash": "60555e70c0fb3c69bbe418d134f74dea1f73391a9504b82970a3781104f5e3bc", "fetched_at": "2026-08-29T09:39:14.184354+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/keyv"}, {"content_hash": "9858d117e5b766959a1b31e54535b51a4ff948f4b92a3cd3d10e50da3736c378", "fetched_at": "2026-08-29T09:39:14.181549+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/releases"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.057253+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:24:59.133993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84dd1e066e2238a30db2ee1b39eaf0f5739250fb444221de53e37b9cb3c658ae", "fetched_at": "2026-08-28T04:07:48.057253+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredwray/keyv"}, {"content_hash": "fd54892b1ed8c2610d36317efa37026469a9bed8bca48e9db8feb54ae61b41b0", "fetched_at": "2026-08-29T09:39:14.176773+00:00", "kind": "homepage", "missing": false, "url": "https://keyv.org"}, {"content_hash": "0e669f3e84ba70100366d5e4fa81f0eba16d311bd9076b09b52025ba3032d52b", "fetched_at": "2026-08-29T09:39:14.179374+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/docs"}, {"content_hash": "60555e70c0fb3c69bbe418d134f74dea1f73391a9504b82970a3781104f5e3bc", "fetched_at": "2026-08-29T09:39:14.184354+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/keyv"}, {"content_hash": "9858d117e5b766959a1b31e54535b51a4ff948f4b92a3cd3d10e50da3736c378", "fetched_at": "2026-08-29T09:39:14.181549+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/releases"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:24:59.133993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84dd1e066e2238a30db2ee1b39eaf0f5739250fb444221de53e37b9cb3c658ae", "fetched_at": "2026-08-28T04:07:48.057253+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredwray/keyv"}, {"content_hash": "fd54892b1ed8c2610d36317efa37026469a9bed8bca48e9db8feb54ae61b41b0", "fetched_at": "2026-08-29T09:39:14.176773+00:00", "kind": "homepage", "missing": false, "url": "https://keyv.org"}, {"content_hash": "0e669f3e84ba70100366d5e4fa81f0eba16d311bd9076b09b52025ba3032d52b", "fetched_at": "2026-08-29T09:39:14.179374+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/docs"}, {"content_hash": "60555e70c0fb3c69bbe418d134f74dea1f73391a9504b82970a3781104f5e3bc", "fetched_at": "2026-08-29T09:39:14.184354+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/keyv"}, {"content_hash": "9858d117e5b766959a1b31e54535b51a4ff948f4b92a3cd3d10e50da3736c378", "fetched_at": "2026-08-29T09:39:14.181549+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/releases"}], "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:07:48.057253+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.057253+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.057253+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:24:59.133993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84dd1e066e2238a30db2ee1b39eaf0f5739250fb444221de53e37b9cb3c658ae", "fetched_at": "2026-08-28T04:07:48.057253+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredwray/keyv"}, {"content_hash": "fd54892b1ed8c2610d36317efa37026469a9bed8bca48e9db8feb54ae61b41b0", "fetched_at": "2026-08-29T09:39:14.176773+00:00", "kind": "homepage", "missing": false, "url": "https://keyv.org"}, {"content_hash": "0e669f3e84ba70100366d5e4fa81f0eba16d311bd9076b09b52025ba3032d52b", "fetched_at": "2026-08-29T09:39:14.179374+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/docs"}, {"content_hash": "60555e70c0fb3c69bbe418d134f74dea1f73391a9504b82970a3781104f5e3bc", "fetched_at": "2026-08-29T09:39:14.184354+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/keyv"}, {"content_hash": "9858d117e5b766959a1b31e54535b51a4ff948f4b92a3cd3d10e50da3736c378", "fetched_at": "2026-08-29T09:39:14.181549+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/releases"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.057253+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.057253+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:24:59.133993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84dd1e066e2238a30db2ee1b39eaf0f5739250fb444221de53e37b9cb3c658ae", "fetched_at": "2026-08-28T04:07:48.057253+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredwray/keyv"}, {"content_hash": "fd54892b1ed8c2610d36317efa37026469a9bed8bca48e9db8feb54ae61b41b0", "fetched_at": "2026-08-29T09:39:14.176773+00:00", "kind": "homepage", "missing": false, "url": "https://keyv.org"}, {"content_hash": "0e669f3e84ba70100366d5e4fa81f0eba16d311bd9076b09b52025ba3032d52b", "fetched_at": "2026-08-29T09:39:14.179374+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/docs"}, {"content_hash": "60555e70c0fb3c69bbe418d134f74dea1f73391a9504b82970a3781104f5e3bc", "fetched_at": "2026-08-29T09:39:14.184354+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/keyv"}, {"content_hash": "9858d117e5b766959a1b31e54535b51a4ff948f4b92a3cd3d10e50da3736c378", "fetched_at": "2026-08-29T09:39:14.181549+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/releases"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.057253+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.057253+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.057253+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:24:59.133993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84dd1e066e2238a30db2ee1b39eaf0f5739250fb444221de53e37b9cb3c658ae", "fetched_at": "2026-08-28T04:07:48.057253+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredwray/keyv"}, {"content_hash": "fd54892b1ed8c2610d36317efa37026469a9bed8bca48e9db8feb54ae61b41b0", "fetched_at": "2026-08-29T09:39:14.176773+00:00", "kind": "homepage", "missing": false, "url": "https://keyv.org"}, {"content_hash": "0e669f3e84ba70100366d5e4fa81f0eba16d311bd9076b09b52025ba3032d52b", "fetched_at": "2026-08-29T09:39:14.179374+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/docs"}, {"content_hash": "60555e70c0fb3c69bbe418d134f74dea1f73391a9504b82970a3781104f5e3bc", "fetched_at": "2026-08-29T09:39:14.184354+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/keyv"}, {"content_hash": "9858d117e5b766959a1b31e54535b51a4ff948f4b92a3cd3d10e50da3736c378", "fetched_at": "2026-08-29T09:39:14.181549+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/releases"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.057253+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.057253+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:24:59.133993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84dd1e066e2238a30db2ee1b39eaf0f5739250fb444221de53e37b9cb3c658ae", "fetched_at": "2026-08-28T04:07:48.057253+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredwray/keyv"}, {"content_hash": "fd54892b1ed8c2610d36317efa37026469a9bed8bca48e9db8feb54ae61b41b0", "fetched_at": "2026-08-29T09:39:14.176773+00:00", "kind": "homepage", "missing": false, "url": "https://keyv.org"}, {"content_hash": "0e669f3e84ba70100366d5e4fa81f0eba16d311bd9076b09b52025ba3032d52b", "fetched_at": "2026-08-29T09:39:14.179374+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/docs"}, {"content_hash": "60555e70c0fb3c69bbe418d134f74dea1f73391a9504b82970a3781104f5e3bc", "fetched_at": "2026-08-29T09:39:14.184354+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/keyv"}, {"content_hash": "9858d117e5b766959a1b31e54535b51a4ff948f4b92a3cd3d10e50da3736c378", "fetched_at": "2026-08-29T09:39:14.181549+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/releases"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:24:59.133993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84dd1e066e2238a30db2ee1b39eaf0f5739250fb444221de53e37b9cb3c658ae", "fetched_at": "2026-08-28T04:07:48.057253+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredwray/keyv"}, {"content_hash": "fd54892b1ed8c2610d36317efa37026469a9bed8bca48e9db8feb54ae61b41b0", "fetched_at": "2026-08-29T09:39:14.176773+00:00", "kind": "homepage", "missing": false, "url": "https://keyv.org"}, {"content_hash": "0e669f3e84ba70100366d5e4fa81f0eba16d311bd9076b09b52025ba3032d52b", "fetched_at": "2026-08-29T09:39:14.179374+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/docs"}, {"content_hash": "60555e70c0fb3c69bbe418d134f74dea1f73391a9504b82970a3781104f5e3bc", "fetched_at": "2026-08-29T09:39:14.184354+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/keyv"}, {"content_hash": "9858d117e5b766959a1b31e54535b51a4ff948f4b92a3cd3d10e50da3736c378", "fetched_at": "2026-08-29T09:39:14.181549+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/releases"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:24:59.133993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84dd1e066e2238a30db2ee1b39eaf0f5739250fb444221de53e37b9cb3c658ae", "fetched_at": "2026-08-28T04:07:48.057253+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredwray/keyv"}, {"content_hash": "fd54892b1ed8c2610d36317efa37026469a9bed8bca48e9db8feb54ae61b41b0", "fetched_at": "2026-08-29T09:39:14.176773+00:00", "kind": "homepage", "missing": false, "url": "https://keyv.org"}, {"content_hash": "0e669f3e84ba70100366d5e4fa81f0eba16d311bd9076b09b52025ba3032d52b", "fetched_at": "2026-08-29T09:39:14.179374+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/docs"}, {"content_hash": "60555e70c0fb3c69bbe418d134f74dea1f73391a9504b82970a3781104f5e3bc", "fetched_at": "2026-08-29T09:39:14.184354+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/keyv"}, {"content_hash": "9858d117e5b766959a1b31e54535b51a4ff948f4b92a3cd3d10e50da3736c378", "fetched_at": "2026-08-29T09:39:14.181549+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/releases"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:24:59.133993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "84dd1e066e2238a30db2ee1b39eaf0f5739250fb444221de53e37b9cb3c658ae", "fetched_at": "2026-08-28T04:07:48.057253+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredwray/keyv"}, {"content_hash": "fd54892b1ed8c2610d36317efa37026469a9bed8bca48e9db8feb54ae61b41b0", "fetched_at": "2026-08-29T09:39:14.176773+00:00", "kind": "homepage", "missing": false, "url": "https://keyv.org"}, {"content_hash": "0e669f3e84ba70100366d5e4fa81f0eba16d311bd9076b09b52025ba3032d52b", "fetched_at": "2026-08-29T09:39:14.179374+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/docs"}, {"content_hash": "60555e70c0fb3c69bbe418d134f74dea1f73391a9504b82970a3781104f5e3bc", "fetched_at": "2026-08-29T09:39:14.184354+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/keyv"}, {"content_hash": "9858d117e5b766959a1b31e54535b51a4ff948f4b92a3cd3d10e50da3736c378", "fetched_at": "2026-08-29T09:39:14.181549+00:00", "kind": "site_page", "missing": false, "url": "https://keyv.org/releases"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 96}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3344, "days_push": 8, "days_rel": 30, "gap_med": 10, "n_releases_24m": 56}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}