Netengine is a python library that aims to provide a single API to extract common information from network devices using different protocols (eg: SNMP, SSH, HTTP) and different firwmares (eg: OpenWRT, AirOS).

You can immagine Netengine as a read-only ORM (Object Relational Mapper) equivalent for networks.


While dealing with networks in the real world, it’s highly probable that you will deal with a network which is made with very different routers, switches and servers. Some may support standard SNMP mibs, some may not, some may implement other HTTP APIs, some may even implement obscure/custom SNMP mibs.

If you need to develop a web application that automates some networking tasks, you don’t want to deal with all those differences in the application code, because it would become hard to mantain very soon. You also might not want to tie your web app code to a specific vendor or firmware because that would make your software unflexible.

If we had a single API we could let web developers focus on the task they need to accomplish rather than dealing with SNMP, SSH, different firmwares, different linux distributions and so on.

The goal of this project is to build that single API.

Status of this project

We are currently in 0.1 beta version.

The 0.1 final version will be out by April 2015.


Install the development version (tarball):

pip install

Alternatively, you can install via pip using git:

pip install -e git+git://