Pure Python SNMP implementation


Keywords
networking, snmp, python, python-3, snmpv2
License
MIT
Install
pip install puresnmp==1.5.1

Documentation

https://github.com/exhuma/puresnmp/workflows/Python%20package/badge.svg?branch=master Documentation Status Github Project PyPI

TL;DR

Jump right in with the cookbook


Quick Info

What
A pure Python implementation for Python 3.6+ of SNMP without any external dependencies (neither MIBs or libsnmp).
Why

SNMP in itself is simple and well defined. A bit convoluted, but simple. MIB parsing however complicates the code-base and is technically not required. They add typing information and variables and give names to OIDs. All existing libraries have a direct or indirect dependency on libsnmp. With all the advantages and disadvantages.

The aim of this project is to focus on SNMP in itself and provide a very simple API. Instead of implementing ASN.1 parsing, the SNMP related ASN.1 and information is hard-coded (keeping in mind that all that's hard-coded is well defined).

It is of course possible to wrap this package in another package adding MIB parsing and processing. This is, and will be however out of the scope of this project!

When
First commit: Sat Jul 23 12:01:05 2016 +0200
Who
Michel Albert

Installation

pip install puresnmp

Package Version Numbers

As an important side-note, you might want to know that this project follows Semantic Versioning.

Examples

See the cookbook.

Development & Maintenance

The easiest way to get started it to use the provided "development container" in the .devcontainer folder. When using VS-Code with the Remote Development extension it will be picked up automatically when opening the project. If not, open the command-console and select Remote-Containers: Rebuild Container to get started.

Type ./env/bin/pytest to ensure that everything is set up properly. It should run and pass all unit-tests.

This will provide a container with all required dependencies for development. Including a tiny SNMP daemon on hostname snmpd which can be used to play around with.