{"adoption": {"forks": 150, "observed_at": "2026-08-28T04:04:50.588535+00:00", "stars": 1479}, "canonical_url": "https://ross.abutalabs.com/products/liqo", "card": {"archived": false, "artifact_type": "infra-config", "description": "Enable dynamic and seamless Kubernetes multi-cluster topologies", "domain": ["cloud-computing", "microservices", "infrastructure-as-code"], "enriched": true, "function": ["container-orchestration", "networking", "deployment", "scheduling", "microservices"], "health_score": 99, "homepage": "https://liqo.io", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["liqotech/liqo"], "name": "liqotech/liqo", "platform": ["go", "cloud", "self-hosted"], "pushed_at": "2026-08-25T16:01:48+00:00", "repo": "liqotech/liqo", "stars": 1479, "tags": ["multi-cluster", "kubernetes-clusters", "workload-offloading", "cluster-peering", "resource-sharing", "edge-computing", "hybrid-cloud", "virtual-kubelet", "containers", "devops", "kubernetes", "linux"], "topics": ["kubernetes", "liquid-computing", "resource-sharing", "cloud-computing", "multi-cluster", "kubernetes-clusters", "clusters", "k8s"], "urls": [], "use_cases": ["extend kubernetes namespaces across multiple clusters", "offload pods to remote kubernetes clusters transparently", "connect pods across kubernetes clusters without vpn configuration", "share resources between independent kubernetes clusters", "run stateful workloads across multiple clusters", "build hybrid cloud and edge kubernetes topologies", "schedule workloads on remote clusters as a virtual node"], "what_it_is": "Liqo is an open-source project that enables dynamic and seamless Kubernetes multi-cluster topologies across heterogeneous on-premise, cloud, and edge infrastructures. It provides automatic cluster peering, transparent workload offloading to remote clusters via virtual nodes, inter-cluster networking, and cross-cluster storage replication.", "when_to_avoid": ["you only run a single kubernetes cluster", "you need a fully managed multi-cluster solution with vendor support", "your workloads cannot tolerate cross-cluster network latency", "you require strict isolation between clusters with no resource sharing"], "when_to_choose": ["you need multi-cluster kubernetes without complex vpn or certificate setup", "you want transparent workload offloading without modifying applications or kubernetes", "you need cross-cluster pod-to-pod networking independent of CNI plugins", "you operate heterogeneous on-premise, cloud, and edge clusters"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/liqo", "repo": "liqotech/liqo", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.588535+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.475971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "02d324c7f938d81a614cd76b81312b7b4d3842f18c4d82a9117cc5b009fec934", "fetched_at": "2026-08-28T04:04:50.588535+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liqotech/liqo"}, {"content_hash": "77953d89c2ea0ec8d88ae929a7f1d6fdd59db54b6fcaee703c87889991f5df80", "fetched_at": "2026-08-29T11:41:47.624019+00:00", "kind": "homepage", "missing": false, "url": "https://liqo.io"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.588535+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.475971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "02d324c7f938d81a614cd76b81312b7b4d3842f18c4d82a9117cc5b009fec934", "fetched_at": "2026-08-28T04:04:50.588535+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liqotech/liqo"}, {"content_hash": "77953d89c2ea0ec8d88ae929a7f1d6fdd59db54b6fcaee703c87889991f5df80", "fetched_at": "2026-08-29T11:41:47.624019+00:00", "kind": "homepage", "missing": false, "url": "https://liqo.io"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.475971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "02d324c7f938d81a614cd76b81312b7b4d3842f18c4d82a9117cc5b009fec934", "fetched_at": "2026-08-28T04:04:50.588535+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liqotech/liqo"}, {"content_hash": "77953d89c2ea0ec8d88ae929a7f1d6fdd59db54b6fcaee703c87889991f5df80", "fetched_at": "2026-08-29T11:41:47.624019+00:00", "kind": "homepage", "missing": false, "url": "https://liqo.io"}], "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:04:50.588535+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.588535+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.588535+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.475971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "02d324c7f938d81a614cd76b81312b7b4d3842f18c4d82a9117cc5b009fec934", "fetched_at": "2026-08-28T04:04:50.588535+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liqotech/liqo"}, {"content_hash": "77953d89c2ea0ec8d88ae929a7f1d6fdd59db54b6fcaee703c87889991f5df80", "fetched_at": "2026-08-29T11:41:47.624019+00:00", "kind": "homepage", "missing": false, "url": "https://liqo.io"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.588535+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.588535+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.475971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "02d324c7f938d81a614cd76b81312b7b4d3842f18c4d82a9117cc5b009fec934", "fetched_at": "2026-08-28T04:04:50.588535+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liqotech/liqo"}, {"content_hash": "77953d89c2ea0ec8d88ae929a7f1d6fdd59db54b6fcaee703c87889991f5df80", "fetched_at": "2026-08-29T11:41:47.624019+00:00", "kind": "homepage", "missing": false, "url": "https://liqo.io"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.588535+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.588535+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.588535+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.475971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "02d324c7f938d81a614cd76b81312b7b4d3842f18c4d82a9117cc5b009fec934", "fetched_at": "2026-08-28T04:04:50.588535+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liqotech/liqo"}, {"content_hash": "77953d89c2ea0ec8d88ae929a7f1d6fdd59db54b6fcaee703c87889991f5df80", "fetched_at": "2026-08-29T11:41:47.624019+00:00", "kind": "homepage", "missing": false, "url": "https://liqo.io"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.588535+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.588535+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.475971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "02d324c7f938d81a614cd76b81312b7b4d3842f18c4d82a9117cc5b009fec934", "fetched_at": "2026-08-28T04:04:50.588535+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liqotech/liqo"}, {"content_hash": "77953d89c2ea0ec8d88ae929a7f1d6fdd59db54b6fcaee703c87889991f5df80", "fetched_at": "2026-08-29T11:41:47.624019+00:00", "kind": "homepage", "missing": false, "url": "https://liqo.io"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.475971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "02d324c7f938d81a614cd76b81312b7b4d3842f18c4d82a9117cc5b009fec934", "fetched_at": "2026-08-28T04:04:50.588535+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liqotech/liqo"}, {"content_hash": "77953d89c2ea0ec8d88ae929a7f1d6fdd59db54b6fcaee703c87889991f5df80", "fetched_at": "2026-08-29T11:41:47.624019+00:00", "kind": "homepage", "missing": false, "url": "https://liqo.io"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.475971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "02d324c7f938d81a614cd76b81312b7b4d3842f18c4d82a9117cc5b009fec934", "fetched_at": "2026-08-28T04:04:50.588535+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liqotech/liqo"}, {"content_hash": "77953d89c2ea0ec8d88ae929a7f1d6fdd59db54b6fcaee703c87889991f5df80", "fetched_at": "2026-08-29T11:41:47.624019+00:00", "kind": "homepage", "missing": false, "url": "https://liqo.io"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:34:19.475971+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "02d324c7f938d81a614cd76b81312b7b4d3842f18c4d82a9117cc5b009fec934", "fetched_at": "2026-08-28T04:04:50.588535+00:00", "kind": "readme", "missing": false, "url": "https://github.com/liqotech/liqo"}, {"content_hash": "77953d89c2ea0ec8d88ae929a7f1d6fdd59db54b6fcaee703c87889991f5df80", "fetched_at": "2026-08-29T11:41:47.624019+00:00", "kind": "homepage", "missing": false, "url": "https://liqo.io"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 79}, "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": 2310, "days_push": 8, "days_rel": 61, "gap_med": 76, "n_releases_24m": 10}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}