{"adoption": {"forks": 90, "observed_at": "2026-09-01T02:14:03.489436+00:00", "stars": 1066}, "canonical_url": "https://ross.abutalabs.com/products/kellnr", "card": {"archived": false, "artifact_type": "service", "description": "The registry for Rust crates", "domain": ["developer-tools", "self-hosted", "backend", "version-control"], "enriched": true, "function": ["self-hosted", "http-server", "developer-tools", "package-manager"], "health_score": 100, "homepage": "https://kellnr.io", "language": "Rust", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["kellnr/kellnr"], "name": "kellnr/kellnr", "platform": ["self-hosted", "rust"], "pushed_at": "2026-08-29T14:30:37+00:00", "repo": "kellnr/kellnr", "stars": 1066, "tags": ["crate-registry", "cargo", "rustlang", "crates-io-proxy", "docs-rs", "private-registry", "docker", "linux", "kubernetes", "web-server"], "topics": ["crate", "crates", "registry", "rust", "rustlang"], "urls": [], "use_cases": ["host private rust crates for my company", "self-hosted alternative to crates.io", "cache crates.io downloads behind a proxy", "host rust documentation for internal crates", "set up a private cargo registry with docker", "manage crate versions with a web ui", "offline crate registry for air-gapped environments"], "what_it_is": "Kellnr is a self-hosted, open-source registry for Rust crates, like a private crates.io you run on your own hardware. It supports cargo out of the box, hosts rustdocs, provides a web UI for crate management, and can act as a caching proxy for crates.io.", "when_to_avoid": ["you only publish public open-source crates, where crates.io is the standard", "you need a multi-language package registry (npm, PyPI, etc.) rather than Rust-only", "you don't want to operate any server infrastructure"], "when_to_choose": ["you need private Rust crates that cargo can consume without extra tooling", "you want to cache/proxy crates.io to speed up or control dependencies", "you want self-hosted docs.rs-style documentation for your crates", "you need an air-gapped or on-premises crate registry"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/kellnr", "repo": "kellnr/kellnr", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.489436+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:57:47.423836+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3acad7e789288650b7d648553da96a88578d1fc348f978e91f72e184099b2daa", "fetched_at": "2026-09-01T02:14:03.489436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kellnr/kellnr"}, {"content_hash": "ca25b07afb9b0ac85553b602428b1d55482b66189224c6b2b3d45d7f51523083", "fetched_at": "2026-08-29T12:59:21.057404+00:00", "kind": "homepage", "missing": false, "url": "https://kellnr.io"}, {"content_hash": "d1ca8970ae7ce23398b621236c2cfd68d30feb01df5c6964e829d27d9b9745c3", "fetched_at": "2026-08-29T12:59:21.066277+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kellnr"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.489436+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:57:47.423836+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3acad7e789288650b7d648553da96a88578d1fc348f978e91f72e184099b2daa", "fetched_at": "2026-09-01T02:14:03.489436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kellnr/kellnr"}, {"content_hash": "ca25b07afb9b0ac85553b602428b1d55482b66189224c6b2b3d45d7f51523083", "fetched_at": "2026-08-29T12:59:21.057404+00:00", "kind": "homepage", "missing": false, "url": "https://kellnr.io"}, {"content_hash": "d1ca8970ae7ce23398b621236c2cfd68d30feb01df5c6964e829d27d9b9745c3", "fetched_at": "2026-08-29T12:59:21.066277+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kellnr"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:57:47.423836+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3acad7e789288650b7d648553da96a88578d1fc348f978e91f72e184099b2daa", "fetched_at": "2026-09-01T02:14:03.489436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kellnr/kellnr"}, {"content_hash": "ca25b07afb9b0ac85553b602428b1d55482b66189224c6b2b3d45d7f51523083", "fetched_at": "2026-08-29T12:59:21.057404+00:00", "kind": "homepage", "missing": false, "url": "https://kellnr.io"}, {"content_hash": "d1ca8970ae7ce23398b621236c2cfd68d30feb01df5c6964e829d27d9b9745c3", "fetched_at": "2026-08-29T12:59:21.066277+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kellnr"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.489436+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.489436+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.489436+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:57:47.423836+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3acad7e789288650b7d648553da96a88578d1fc348f978e91f72e184099b2daa", "fetched_at": "2026-09-01T02:14:03.489436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kellnr/kellnr"}, {"content_hash": "ca25b07afb9b0ac85553b602428b1d55482b66189224c6b2b3d45d7f51523083", "fetched_at": "2026-08-29T12:59:21.057404+00:00", "kind": "homepage", "missing": false, "url": "https://kellnr.io"}, {"content_hash": "d1ca8970ae7ce23398b621236c2cfd68d30feb01df5c6964e829d27d9b9745c3", "fetched_at": "2026-08-29T12:59:21.066277+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kellnr"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.489436+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.489436+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:57:47.423836+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3acad7e789288650b7d648553da96a88578d1fc348f978e91f72e184099b2daa", "fetched_at": "2026-09-01T02:14:03.489436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kellnr/kellnr"}, {"content_hash": "ca25b07afb9b0ac85553b602428b1d55482b66189224c6b2b3d45d7f51523083", "fetched_at": "2026-08-29T12:59:21.057404+00:00", "kind": "homepage", "missing": false, "url": "https://kellnr.io"}, {"content_hash": "d1ca8970ae7ce23398b621236c2cfd68d30feb01df5c6964e829d27d9b9745c3", "fetched_at": "2026-08-29T12:59:21.066277+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kellnr"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.489436+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.489436+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.489436+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:57:47.423836+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3acad7e789288650b7d648553da96a88578d1fc348f978e91f72e184099b2daa", "fetched_at": "2026-09-01T02:14:03.489436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kellnr/kellnr"}, {"content_hash": "ca25b07afb9b0ac85553b602428b1d55482b66189224c6b2b3d45d7f51523083", "fetched_at": "2026-08-29T12:59:21.057404+00:00", "kind": "homepage", "missing": false, "url": "https://kellnr.io"}, {"content_hash": "d1ca8970ae7ce23398b621236c2cfd68d30feb01df5c6964e829d27d9b9745c3", "fetched_at": "2026-08-29T12:59:21.066277+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kellnr"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.489436+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-01T02:14:03.489436+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:57:47.423836+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3acad7e789288650b7d648553da96a88578d1fc348f978e91f72e184099b2daa", "fetched_at": "2026-09-01T02:14:03.489436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kellnr/kellnr"}, {"content_hash": "ca25b07afb9b0ac85553b602428b1d55482b66189224c6b2b3d45d7f51523083", "fetched_at": "2026-08-29T12:59:21.057404+00:00", "kind": "homepage", "missing": false, "url": "https://kellnr.io"}, {"content_hash": "d1ca8970ae7ce23398b621236c2cfd68d30feb01df5c6964e829d27d9b9745c3", "fetched_at": "2026-08-29T12:59:21.066277+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kellnr"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:57:47.423836+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3acad7e789288650b7d648553da96a88578d1fc348f978e91f72e184099b2daa", "fetched_at": "2026-09-01T02:14:03.489436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kellnr/kellnr"}, {"content_hash": "ca25b07afb9b0ac85553b602428b1d55482b66189224c6b2b3d45d7f51523083", "fetched_at": "2026-08-29T12:59:21.057404+00:00", "kind": "homepage", "missing": false, "url": "https://kellnr.io"}, {"content_hash": "d1ca8970ae7ce23398b621236c2cfd68d30feb01df5c6964e829d27d9b9745c3", "fetched_at": "2026-08-29T12:59:21.066277+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kellnr"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:57:47.423836+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3acad7e789288650b7d648553da96a88578d1fc348f978e91f72e184099b2daa", "fetched_at": "2026-09-01T02:14:03.489436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kellnr/kellnr"}, {"content_hash": "ca25b07afb9b0ac85553b602428b1d55482b66189224c6b2b3d45d7f51523083", "fetched_at": "2026-08-29T12:59:21.057404+00:00", "kind": "homepage", "missing": false, "url": "https://kellnr.io"}, {"content_hash": "d1ca8970ae7ce23398b621236c2cfd68d30feb01df5c6964e829d27d9b9745c3", "fetched_at": "2026-08-29T12:59:21.066277+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kellnr"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:57:47.423836+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3acad7e789288650b7d648553da96a88578d1fc348f978e91f72e184099b2daa", "fetched_at": "2026-09-01T02:14:03.489436+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kellnr/kellnr"}, {"content_hash": "ca25b07afb9b0ac85553b602428b1d55482b66189224c6b2b3d45d7f51523083", "fetched_at": "2026-08-29T12:59:21.057404+00:00", "kind": "homepage", "missing": false, "url": "https://kellnr.io"}, {"content_hash": "d1ca8970ae7ce23398b621236c2cfd68d30feb01df5c6964e829d27d9b9745c3", "fetched_at": "2026-08-29T12:59:21.066277+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/kellnr"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 77, "rhythm": 99}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1088, "days_push": 4, "days_rel": 4, "gap_med": 11.0, "n_releases_24m": 37}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 5, "stale_scrape": false}}