{"adoption": {"forks": 620, "observed_at": "2026-08-28T04:09:04.634824+00:00", "stars": 5012}, "canonical_url": "https://ross.abutalabs.com/products/sptag", "card": {"archived": false, "artifact_type": "library", "description": "A distributed approximate nearest neighborhood search (ANN) library which provides a high quality vector index build, search and distributed online serving toolkits for large scale vector search scenario.", "domain": ["machine-learning", "databases", "big-data"], "enriched": true, "function": ["search-engine", "vector-database", "machine-learning"], "health_score": 79, "homepage": null, "language": "C++", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["microsoft/SPTAG"], "name": "microsoft/SPTAG", "platform": ["cpp", "python"], "pushed_at": "2026-08-21T05:25:04+00:00", "repo": "microsoft/SPTAG", "stars": 5012, "tags": ["approximate-nearest-neighbor", "vector-search", "ann", "distributed-serving", "kd-tree", "neighborhood-graph", "fresh-update", "microsoft-research", "search", "linux", "docker"], "topics": ["space-partition-tree", "neighborhood-graph", "vector-search", "fresh-update", "distributed-serving", "approximate-nearest-neighbor-search"], "urls": [], "use_cases": ["build a vector index over billions of embeddings for similarity search", "serve nearest neighbor queries across multiple machines", "support online insertion and deletion of vectors without full reindexing", "power semantic search or recommendation retrieval with L2 or cosine distance", "integrate ANN search into a C++ or Python application"], "what_it_is": "SPTAG is a C++ library from Microsoft for large-scale approximate nearest neighbor (ANN) vector search, offering kd-tree/balanced k-means tree plus relative neighborhood graph index structures. It supports online vector insertion and deletion (fresh update) and distributed online serving across multiple machines.", "when_to_avoid": ["you need a turnkey managed vector database with filtering and CRUD APIs", "your dataset is small enough that brute-force or simpler libraries (FAISS, Annoy) suffice", "you cannot build C++ dependencies like SPDK, Boost, and SWIG", "you need heavy relational query support on top of vector search"], "when_to_choose": ["you need billion-scale vector search with high recall and low latency", "you require distributed online serving of vector queries", "you need incremental updates (insert/delete) on a live index", "you want a battle-tested Microsoft research library with MIT licensing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sptag", "repo": "microsoft/SPTAG", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.634824+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:17:32.979522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b9ffb342cf641a595309cd63da59d1290724a96efd00757534ffc3271ad4ccd", "fetched_at": "2026-08-28T04:09:04.634824+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/SPTAG"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.634824+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:17:32.979522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b9ffb342cf641a595309cd63da59d1290724a96efd00757534ffc3271ad4ccd", "fetched_at": "2026-08-28T04:09:04.634824+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/SPTAG"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:17:32.979522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b9ffb342cf641a595309cd63da59d1290724a96efd00757534ffc3271ad4ccd", "fetched_at": "2026-08-28T04:09:04.634824+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/SPTAG"}], "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:04.634824+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.634824+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.634824+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:17:32.979522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b9ffb342cf641a595309cd63da59d1290724a96efd00757534ffc3271ad4ccd", "fetched_at": "2026-08-28T04:09:04.634824+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/SPTAG"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.634824+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.634824+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:17:32.979522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b9ffb342cf641a595309cd63da59d1290724a96efd00757534ffc3271ad4ccd", "fetched_at": "2026-08-28T04:09:04.634824+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/SPTAG"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.634824+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.634824+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.634824+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:17:32.979522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b9ffb342cf641a595309cd63da59d1290724a96efd00757534ffc3271ad4ccd", "fetched_at": "2026-08-28T04:09:04.634824+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/SPTAG"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.634824+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:04.634824+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:17:32.979522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b9ffb342cf641a595309cd63da59d1290724a96efd00757534ffc3271ad4ccd", "fetched_at": "2026-08-28T04:09:04.634824+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/SPTAG"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:17:32.979522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b9ffb342cf641a595309cd63da59d1290724a96efd00757534ffc3271ad4ccd", "fetched_at": "2026-08-28T04:09:04.634824+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/SPTAG"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:17:32.979522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b9ffb342cf641a595309cd63da59d1290724a96efd00757534ffc3271ad4ccd", "fetched_at": "2026-08-28T04:09:04.634824+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/SPTAG"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:17:32.979522+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b9ffb342cf641a595309cd63da59d1290724a96efd00757534ffc3271ad4ccd", "fetched_at": "2026-08-28T04:09:04.634824+00:00", "kind": "readme", "missing": false, "url": "https://github.com/microsoft/SPTAG"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2912, "days_push": 12, "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}}