os-ken
A component-based software defined networking framework for OpenStack
What it is and what it does
os-ken is a fork of the Ryu SDN framework adapted for OpenStack Neutron. It provides a Python-based platform for building OpenFlow controllers that can manage and monitor network switches and devices programmatically. The framework is component-based, meaning you build applications by extending base classes and registering event handlers for network events like switch connections and packet arrivals.
The package sits at the intersection of network infrastructure and application logic—it handles the low-level OpenFlow protocol details (via dependencies like ncclient and msgpack) while exposing a higher-level event-driven API. It's designed for operators and developers working within OpenStack environments who need to implement custom network policies, traffic engineering, or monitoring on top of their SDN infrastructure.
Use it for:
- Build custom OpenFlow controllers to manage network traffic policies in OpenStack deployments.
- Monitor and react to network events (switch joins, packet arrivals) in a programmatic way.
- Implement network slicing or traffic engineering logic on top of OpenFlow switches.
- Prototype and test SDN applications in OpenStack lab or production environments.
- Integrate network control logic directly into OpenStack Neutron workflows.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
os-ken is a component-based software defined networking framework for OpenStack that enables programmatic control and monitoring of network switches and devices through OpenFlow protocols.
Yes, if you are working within an OpenStack environment and need to build or extend SDN applications. The package is actively maintained, has low install friction, carries a permissive license, and has no known vulnerabilities. It is not a general-purpose networking library—it is specifically tailored for OpenStack Neutron and OpenFlow-based infrastructure, so install it only if that matches your deployment model.
Install
os-ken on PyPI
pip
pip install os-kenuv
uv add os-kenpoetry
poetry add os-kenInstalling os-ken
Before you install
Low install friction with a pure-Python wheel distribution. Active maintenance status with a recent release within 63 days. Ten runtime dependencies including eventlet, msgpack, and ncclient provide the networking and async foundations the framework needs.
License in practice
Apache License 2.0 (permissive) allows use in commercial and proprietary projects with minimal restrictions; you must retain license notices and disclaim warranties.
Quickstart
pip install os-ken
from os_ken.base import app_manager
from os_ken.controller import ofp_event
from os_ken.ofproto import ofproto_v1_3
class SimpleSwitch(app_manager.RyuApp):
OFP_VERSIONS = [ofproto_v1_3.OFP_VERSION]
Requires Python 3.10 or later; intended for OpenStack deployments or environments with OpenFlow-capable network hardware or simulators.
Verify before relying
- Whether the package works with specific OpenFlow versions beyond what the classifiers indicate.
- Performance characteristics and scalability limits for large network topologies.
- Integration requirements and compatibility with specific OpenStack releases.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 10 — pbr, eventlet, msgpack, ncclient, netaddr, oslo.config, ovs, packaging, Routes, WebOb |
| Maintenance | actively maintained — 63 days since the last release |
| First released | |
| Downloads | 141,065/month — #11,253 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: os_ken-4.2.1-py3-none-any.whl
Tags
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
psutilpsutil retrieves real-time information about…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
uvloopuvloop is a drop-in replacement for Python's…
permissive · top 1,000 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
pyzmqPyZMQ provides Python bindings for ZeroMQ…
permissive · top 1,000 on PyPI
os-vifos-vif provides a library for managing the…
permissive · top 15,000 on PyPI
os-client-configCollects and manages OpenStack cloud client…
permissive · top 15,000 on PyPI
neutron-libNeutron-lib provides shared routines,…
permissive · top 15,000 on PyPI
os-service-typesProvides access to OpenStack service-type…
permissive · top 5,000 on PyPI
os-resource-classesProvides a standardized collection of resource…
permissive · top 15,000 on PyPI
os-brickManages discovery and removal of storage…
permissive · top 15,000 on PyPI
python-neutronclientPython bindings and client library for the…
permissive · top 15,000 on PyPI
os-traitsos-traits provides a standardized catalog of…
permissive · top 15,000 on PyPI
castellanCastellan provides a unified interface for…
permissive · top 15,000 on PyPI
openstacksdkopenstacksdk is a client library for…
permissive · top 5,000 on PyPI