{"adoption": {"forks": 142, "observed_at": "2026-08-28T04:06:22.999134+00:00", "stars": 2178}, "canonical_url": "https://ross.abutalabs.com/products/folib", "card": {"archived": false, "artifact_type": "application", "description": "全语言制品仓库，涵盖npm、Maven、PyPi、Docker、Gradle、SBT、Cocoapods、Swift、RPM、Debian、PHP、Go、Pub、Ivy、NuGet、Conda、Cargo、Conan、Yarn、GitLFS、Helm、OHPM等主流工具,涵盖Huggingface 等主流AI模型仓库的代理与同步", "domain": ["developer-tools", "self-hosted", "large-language-models", "security"], "enriched": true, "function": ["package-manager", "self-hosted", "proxy", "api-gateway", "security"], "health_score": 92, "homepage": "https://folib.com", "language": "Java", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["BoCloud/folib"], "name": "BoCloud/folib", "platform": ["jvm", "self-hosted"], "pushed_at": "2026-07-30T07:43:27+00:00", "repo": "BoCloud/folib", "stars": 2178, "tags": ["artifact-repository", "package-registry", "software-supply-chain", "maven", "npm", "pypi", "docker-registry", "huggingface-proxy", "nexus-alternative", "artifactory-alternative", "devops", "docker", "linux", "web-server"], "topics": ["aimodels", "artifactory", "maven", "npm", "ohpm", "repository", "docker-registry", "harbor", "huggingface", "nexus", "software-supply-chain"], "urls": [], "use_cases": ["self-host a private maven and npm registry", "proxy and cache huggingface AI models on-premise", "replace nexus or artifactory with an open-source artifact manager", "set up a private docker registry with vulnerability scanning", "manage software supply chain security across all languages", "mirror pypi and cargo packages behind a corporate firewall"], "what_it_is": "Folib is a self-hosted, all-language artifact repository manager supporting npm, Maven, PyPI, Docker, Go, Cargo, NuGet, Helm, and many other package ecosystems, plus proxying and syncing of AI model repositories like Hugging Face. It serves as an open-source alternative to Nexus and Artifactory for software supply chain management.", "when_to_avoid": ["you only need a single-ecosystem registry where a lightweight tool suffices", "you require a commercially supported enterprise artifact platform", "you cannot accept GPL-3.0 licensing constraints"], "when_to_choose": ["you need one repository manager covering many package formats plus AI model hosting", "you want an open-source, self-hosted alternative to JFrog Artifactory or Sonatype Nexus", "your team must cache or proxy Hugging Face models in an air-gapped or restricted network"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/folib", "repo": "BoCloud/folib", "role": "main", "score": 54}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.999134+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:48:47.456700+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67e81417a3e907d5210078dc7f3b0d75e12b058129dab18418cf0da48c3bfb84", "fetched_at": "2026-08-28T04:06:22.999134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BoCloud/folib"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.999134+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:48:47.456700+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67e81417a3e907d5210078dc7f3b0d75e12b058129dab18418cf0da48c3bfb84", "fetched_at": "2026-08-28T04:06:22.999134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BoCloud/folib"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:48:47.456700+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67e81417a3e907d5210078dc7f3b0d75e12b058129dab18418cf0da48c3bfb84", "fetched_at": "2026-08-28T04:06:22.999134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BoCloud/folib"}], "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:06:22.999134+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.999134+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.999134+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:48:47.456700+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67e81417a3e907d5210078dc7f3b0d75e12b058129dab18418cf0da48c3bfb84", "fetched_at": "2026-08-28T04:06:22.999134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BoCloud/folib"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.999134+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.999134+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:48:47.456700+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67e81417a3e907d5210078dc7f3b0d75e12b058129dab18418cf0da48c3bfb84", "fetched_at": "2026-08-28T04:06:22.999134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BoCloud/folib"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.999134+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.999134+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.999134+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:48:47.456700+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67e81417a3e907d5210078dc7f3b0d75e12b058129dab18418cf0da48c3bfb84", "fetched_at": "2026-08-28T04:06:22.999134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BoCloud/folib"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.999134+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:22.999134+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:48:47.456700+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67e81417a3e907d5210078dc7f3b0d75e12b058129dab18418cf0da48c3bfb84", "fetched_at": "2026-08-28T04:06:22.999134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BoCloud/folib"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:48:47.456700+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67e81417a3e907d5210078dc7f3b0d75e12b058129dab18418cf0da48c3bfb84", "fetched_at": "2026-08-28T04:06:22.999134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BoCloud/folib"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:48:47.456700+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67e81417a3e907d5210078dc7f3b0d75e12b058129dab18418cf0da48c3bfb84", "fetched_at": "2026-08-28T04:06:22.999134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BoCloud/folib"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:48:47.456700+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "67e81417a3e907d5210078dc7f3b0d75e12b058129dab18418cf0da48c3bfb84", "fetched_at": "2026-08-28T04:06:22.999134+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BoCloud/folib"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 30, "rhythm": 16}, "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": 420, "days_push": 34, "days_rel": 344, "gap_med": null, "n_releases_24m": 1}, "score": 54, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}