# opennetworkinglab/onos

Open Network Operating System

Repository: https://github.com/opennetworkinglab/onos
Canonical: https://ross.abutalabs.com/products/onos
Language: Java
License: Apache-2.0
License Family: permissive
Last push: 2024-06-18T00:59:30+00:00

## Health v2 (maintenance only)
Score: 32/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 4290, "days_push": 807, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1286, forks 765 (observed 2026-08-28T04:04:14.887976+00:00)

## 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.

## 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

## 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

## 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

## Facets
- artifact type: application
- maturity: stable
- function: networking, routing, gui, cli
- domain: networking, microservices
- platform: jvm
- 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

## Member repositories
- opennetworkinglab/onos (main) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:14.887976+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:56:36.242934+00:00, confidence not recorded.
  - readme: https://github.com/opennetworkinglab/onos (fetched 2026-08-28T04:04:14.887976+00:00, sha 961775b7c6b4)
- Data as of 2026-08-30T08:39:29.467469+00:00.
