{"adoption": {"forks": 765, "observed_at": "2026-08-28T04:04:14.887976+00:00", "stars": 1286}, "canonical_url": "https://ross.abutalabs.com/products/onos", "card": {"archived": false, "artifact_type": "application", "description": "Open Network Operating System", "domain": ["networking", "microservices"], "enriched": true, "function": ["networking", "routing", "gui", "cli"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["opennetworkinglab/onos"], "name": "opennetworkinglab/onos", "platform": ["jvm"], "pushed_at": "2024-06-18T00:59:30+00:00", "repo": "opennetworkinglab/onos", "stars": 1286, "tags": ["sdn", "sdn-controller", "openflow", "p4runtime", "network-operating-system", "intent-based-networking", "network-topology", "bgp", "clustering", "apache-karaf", "osgi", "bazel", "java", "whitebox-switches", "rest-api", "automation", "linux"], "topics": [], "urls": [], "use_cases": ["run an sdn controller to manage openflow and p4runtime switches", "build distributed network control applications on top of intent abstractions", "program whitebox switches from a centralized controller", "migrate legacy brownfield networks to sdn greenfield", "visualize and inspect multi-layer network topologies", "interconnect sdn domains with traditional ip networks using bgp", "cluster a controller for high availability and scalability"], "what_it_is": "ONOS (Open Network Operating System) is a Java-based SDN controller platform that centrally manages and programs network devices through pluggable southbound protocols such as OpenFlow and P4Runtime. It offers high availability via clustering and distributed state, northbound abstractions for global network views and application intents, plus a GUI, CLI, and REST API, supporting the transition from legacy brownfield networks to SDN.", "when_to_avoid": ["You only need lightweight scripting of a few switches, where a smaller controller is simpler", "You want a minimal home-lab setup without Karaf/OSGi and Bazel-based build and deployment overhead", "Your environment cannot run a Java-based distributed platform on Linux servers"], "when_to_choose": ["You need a production-grade, clusterable SDN controller for operator or data-center networks", "You must support multiple southbound protocols (OpenFlow, P4Runtime, legacy) under one control plane", "You are developing network apps that need a global network view and intent-based flow setup"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/onos", "repo": "opennetworkinglab/onos", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.887976+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:56:36.242934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "961775b7c6b4d0674c45686dd9ac71aa24e4b3d3f60c6b550b3c1f1169b36e9f", "fetched_at": "2026-08-28T04:04:14.887976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opennetworkinglab/onos"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.887976+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:56:36.242934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "961775b7c6b4d0674c45686dd9ac71aa24e4b3d3f60c6b550b3c1f1169b36e9f", "fetched_at": "2026-08-28T04:04:14.887976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opennetworkinglab/onos"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:56:36.242934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "961775b7c6b4d0674c45686dd9ac71aa24e4b3d3f60c6b550b3c1f1169b36e9f", "fetched_at": "2026-08-28T04:04:14.887976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opennetworkinglab/onos"}], "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:14.887976+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.887976+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.887976+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:56:36.242934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "961775b7c6b4d0674c45686dd9ac71aa24e4b3d3f60c6b550b3c1f1169b36e9f", "fetched_at": "2026-08-28T04:04:14.887976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opennetworkinglab/onos"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.887976+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.887976+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:56:36.242934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "961775b7c6b4d0674c45686dd9ac71aa24e4b3d3f60c6b550b3c1f1169b36e9f", "fetched_at": "2026-08-28T04:04:14.887976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opennetworkinglab/onos"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.887976+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.887976+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.887976+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:56:36.242934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "961775b7c6b4d0674c45686dd9ac71aa24e4b3d3f60c6b550b3c1f1169b36e9f", "fetched_at": "2026-08-28T04:04:14.887976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opennetworkinglab/onos"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.887976+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:14.887976+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:56:36.242934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "961775b7c6b4d0674c45686dd9ac71aa24e4b3d3f60c6b550b3c1f1169b36e9f", "fetched_at": "2026-08-28T04:04:14.887976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opennetworkinglab/onos"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:56:36.242934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "961775b7c6b4d0674c45686dd9ac71aa24e4b3d3f60c6b550b3c1f1169b36e9f", "fetched_at": "2026-08-28T04:04:14.887976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opennetworkinglab/onos"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:56:36.242934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "961775b7c6b4d0674c45686dd9ac71aa24e4b3d3f60c6b550b3c1f1169b36e9f", "fetched_at": "2026-08-28T04:04:14.887976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opennetworkinglab/onos"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:56:36.242934+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "961775b7c6b4d0674c45686dd9ac71aa24e4b3d3f60c6b550b3c1f1169b36e9f", "fetched_at": "2026-08-28T04:04:14.887976+00:00", "kind": "readme", "missing": false, "url": "https://github.com/opennetworkinglab/onos"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4290, "days_push": 807, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}