Pure Python SNMP implementation

networking, snmp, python, python-3, snmpv2
pip install puresnmp==1.5.1


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


Jump right in with the cookbook

Quick Info

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

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!

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


pip install puresnmp

Package Version Numbers

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


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.