NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3784 most downloaded on PyPI
A Python library for SNMP
Last release 6 days ago
28 Sep 2026
Release timing varies
gaps range from 9 days to 5 months
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
17 years old
83 releases · first in 2009
Bump pyasn1 dependency to 0.6.4.
Bump pyasn1 dependency to 0.6.4.
Bump cryptography dependency to 50.0.1.
Fix a few SNMP v3 warnings.
Fix OID traversal performance issue.
Bumped cryptography dependency to 50.0.0 and above.
Bumped cryptography dependency to 50.0.0 and above.
Fixed a regression where cryptography dependency is optional.
Fixed a security issue in authentication parameter handling.
One column per quarter.
Fixed a security issue in authentication parameter handling.
Fixed network address parsing issue with MIB indices.
Fixed network address parsing issue with MIB indices.
Lifted pysmi dependency restriction up to 2.0.0 and above.
Lifted pysmi dependency restriction up to 2.0.0 and above.
Fixed an error handling bug in walk_cmd.
Fixed an error handling bug in walk_cmd.
Fixed Counter32 and TimeTicks overflow handling.
Fixed Counter32 and TimeTicks overflow handling.
Improved type hints and test coverage for SET command functions.
Improved AsyncioDispatcher to track loop state and ensure proper event loop closure.
Refined MibBuilder error handling and added tests for MIB compilation errors.
Fixed dispatcher close handling to avoid event loop/resource leaks.
Bumped pyasn1 dependency to 0.6.3.
Bumped pyasn1 dependency to 0.6.3.
Fixed smi.rfc1902 boolean return values to match documentation.
Added type hints and tests for is_fully_resolved() to improve correctness.
Refactored AsyncioDispatcher to avoid creating event loop unexpectedly and improve loop initialization.
Improved IPv6 handling (zone ID support).
Implemented v1arch command timeouts for {set,next,bulk}_cmd operations.
Dropped support for Python 3.9.
Dropped support for Python 3.9.
Added Python 3.14 to test matrix.
Fixed a bug in bulk walk command when lookupMib is set to False.
Fixed a bug in bulk walk command when lookupMib is set to False.
Implemented v1arch dispatcher timeout support.
Implemented v1arch dispatcher timeout support.
Resolved dispatcher resource leak issue.
Resolved dispatcher resource leak issue.
Upgraded pysmi dependency to 1.6.1.
Upgraded pysmi dependency to 1.6.1.
- Fixed an SNMPv2-SMI issue.
Fixed an SNMPv2-SMI issue.
Fixed a few MIB related issues.
Fixed a few MIB related issues.
Fixed v1arch local address issue.
Improved shadow cloning patch.
Fixed v1arch local address issue.
- Fixed shadow cloning issue.
Fixed shadow cloning issue.
- Fixed a resource leak issue.
Fixed a resource leak issue.
Reverted some changes in named values support.
Reverted some changes in named values support.
Reverted some changes in fixed length support.
Reverted some changes in fixed length support.
Reimplemented getReference in a few MIB objects.
Reimplemented getReference in a few MIB objects.
Updated built-in MIBs to match latest PySMI compiled results.
Updated built-in MIBs to match latest PySMI compiled results.
Fixed a bug in compatibility layer.
Fixed a bug in compatibility layer.
Fixed two bugs in MIB related code and improved compatibility layer.
Fixed two bugs in MIB related code and improved compatibility layer.
Method names are revised to be PEP 8 compliant. Compatibility layer is added to support most of the old method names, but will be removed in the next
Method names are revised to be PEP 8 compliant. Compatibility layer is added to support most of the old method names, but will be removed in the next major release, 8.0.
Python 3.8 support is dropped.
Python 3.13 support is added.
The pysmi dependency is now optional.
The pysmi dependency is now optional.
Dumped pysnmpcrypto dependency and bind to cryptography if presented.
Dumped pysnmpcrypto dependency and bind to cryptography if presented.
Fixed a bulkCmd IndexError bug.
Fixed a bulkCmd IndexError bug.
Cleaned up nextCmd/bulkCmd related code.
Revised docs and examples accordingly.
Revised v1arch hlapi and its docs/examples.
Revised v1arch hlapi and its docs/examples.
Revised nextCmd, bulkCmd, walkCmd, and bulkWalkCmd returned collections.
Moved Slim class to v1arch.
Reimplemented walkCmd and bulkWalkCmd.
Reimplemented walkCmd and bulkWalkCmd.
Removed pyasn1.compat dependency.
Removed pyasn1.compat dependency.
Switched to async DNS resolver.
Removed pyasn1.compat dependency.
Removed pyasn1.compat dependency.
The high-level API (hlapi) extended to cover lightweight SNMP v1arch in hope to ease the use of packet-level SNMP API.
The high-level API (hlapi) extended to cover lightweight SNMP v1arch in hope to ease the use of packet-level SNMP API.
By way of introducing v1arch hlapi, the sub-packages layout changed so that pysnmp.hlapi is moved to pysnmp.hlapi.v3arch and the new v1arch layer is introduced in pysnmp.hlapi.v1arch. This change does not break backward compatibility as pysnmp.hlapi still defaults to pysnmp.hlapi.v3arch.
The pysnmp.hlapi.v1arch is designed to be as much similar in use to pysnmp.hlapi.v3arch, but with high-performance in mind. One of the consequences of this higher performance focus is that various automation around building well-formed SNMP messages is and mediating differences between SNMP versions is not present in this new v1arch layer.
The signature of the hlapi .sendNotification() call has changed to accept *varBinds instead of a sequence of varBinds. The rationale is to unify this method call with similar methods of CommandGenerator. This change should not compromise backward compatibility with pysnmp 4.
Fixed a duplicate item issue in bulkWalkCmd.
Fixed a duplicate item issue in bulkWalkCmd.
The MIB instrumentation API overhauled in backward incompatible way:
Many really old backward-compatibility code snippets removed. Most importantly, everything related to (non-standard) UNIX domain socket transport are gone.
The MIB instrumentation API overhauled in backward incompatible way:
MIB instrumentation methods signatures simplified to accept just var-binds (as var-arg), the rest of the parameters packed into opaque kwargs
CommandResponder application passes snmpEngine and optionally user-supplied cbCtx object throughout the MIB instrumentation methods. The goal is to let MIB objects access/modify whatever custom Python objects they need while being called back.
Cherry-picked many minor fixes from etingof/master branch.
Applied PEP8 recommended names. This breaks backward compatibility.
Applied PEP8 recommended names. This breaks backward compatibility.
Removed pyasn1.compat dependency. A helper release to enable migration.
Removed pyasn1.compat dependency. A helper release to enable migration.
Improved OrderedDict performance.
Improved OrderedDict performance.
User credentials changes are now reflected in the LCD.
Other cleanup.
- Deleted more obsolete items.
Deleted more obsolete items.
- Removed unused dependencies.
Removed unused dependencies.
Removed package postfix. A helper release to enable migration.
Removed package postfix. A helper release to enable migration.
Removed pyasn1.compat dependency. A helper release to enable migration.
Removed pyasn1.compat dependency. A helper release to enable migration.
Removed package postfix. A helper release to enable migration.
Removed package postfix. A helper release to enable migration.
Removed package postfix. A helper release to enable migration.
Removed package postfix. A helper release to enable migration.
Removed package postfix. A helper release to enable migration.
Removed package postfix. A helper release to enable migration.
Fixed broken SNMPv3 msgFlag initialization on authoritative SNMP engine ID discovery. This bug causes secure communication with peer SNMP engines to s
Fixed broken SNMPv3 msgFlag initialization on authoritative SNMP engine ID discovery. This bug causes secure communication with peer SNMP engines to stall at SNMP engine ID discovery procedure.
Added SNMPv3 USM master and localized keys support to LCD configuration
Added SNMPv3 USM master and localized keys support to LCD configuration
Improved initial and runtime USM debugging
Fixed a bug in USM configuration which did not allow the same user names to be added under different security names
Rebased MIB importing code onto importlib because imp is long deprecated
Reworked VACM access control function. Most important changes include:
Added subtree match negation support (vacmViewTreeFamilyType)
Added subtree family mask support (vacmViewTreeFamilyMask)
Added prefix content name matching support (vacmAccessContextMatch)
Added key VACM tables caching for better isAccessAllowed lookup performance
One potential incompatibility may be caused by the addContext() call which now needs to be made explicitly during low-level VACM configuration rather than be a side effect of addVacmAccess() call.
Rebased MIB importing code onto importlib because imp is long deprecated
Received MIB objects resolution made more forgiving to errors, added optional ignoreErrors parameter to ObjectType.resolveWithMib() to control that behaviour.
Fixed asyncore main loop to respect non-default timer resolution
Fixed .setTimerResolution() behaviour of abstract main loop dispatcher to update call intervals of the existing periodic dispatcher jobs
Fixed var-bindings initialization to prevent pyasn1 encoder failures with newer pyasn1 versions where SequenceOf type looses its default initializer.
Fixed crash on uninitialized component serialization left out in SNMP v1 TRAP PDU to SNMPv2/3 TRAP PDU proxy translation routine.
Made MIB loader ignoring file and directory access errors
Made MIB loader ignoring file and directory access errors
Added missing SNMP PDU error classes and their handling in Command Responder
Fixed crash on MIB load failure in case of directory access error
Fixed socket transparency option (IPV6_TRANSPARENT) to make IPv6 transparent operation functional
Fixed Pythonized MIB load (in the source form) - made sure to turn it into a code object prior to its execution
Fixed Pythonized MIB load (in the source form) - made sure to turn it into a code object prior to its execution
Copyright notice extended to the year 2019
Copyright notice extended to the year 2019
Exposed ASN.1 Null type through rfc1902 module for convenience.
Use compile() before exec'ing MIB modules to attach filename to the stack frames (ultimately shown in traceback/debugger)
Fixed hlapi/v3arch transport target caching to ensure transport targets are different even if just timeout/retries options differ
Fixed hlapi LCD configurator to include contextName. Prior to this fix sending SNMPv3 TRAP with non-default contextName would fail.
Fixed possible duplicate key occurrence in the OrderedDict following a race condition
Fixed undefined name references in inet_pton/inet_ntop substitute routines for IPv6 in TRANSPORT-ADDRESS-MIB.py
Improved package build and dependency tracking
Improved package build and dependency tracking
Fixed missing LICENSE from the tarball distribution
Fixed CommandGeneratorLcdConfigurator.unconfigure() to fully clean up internal caches, otherwise repetitive attempts to configure the target would fail.
Fix to tolerate possible duplicate enumerations in Bits and Integer SMI types.
Fix to tolerate non-initialised entries in SNMP community table. Once a bad entry sneaked into the SNMP community table, all the subsequent SNMP v1/v2c operations failed. The fix ignores incomplete SNMP community table entries in the course of building indices.
Added PySnmpError.cause attribute holding parent exception tuple
Added PySnmpError.cause attribute holding parent exception tuple
Fixed broken InetAddressType rendering caused by a pyasn1 regression
Fixed typo in RFC1158 module
Fixed possible infinite loop in GETBULK response PDU builder
Fixed memory leak in the config.delContext() VACM management harness
Fixed Bits class initialization when enumeration values are given
Fixed crash caused by incoming SNMPv3 message requesting SNMPv1/v2c security model
Fixed out-of-scope OIDs leaking at the end of SNMP table at hlapi nextCmd and bulkCmd calls when lexicographicMode = False
Copyright notice extended to the year 2018
Copyright notice extended to the year 2018
Fixed short local key expansion at 3DES key localization implementation.
Migrated references from SourceForge
Migrated references from SourceForge
Added missing SHA2 support for Blumenthal key localization
Fixed named bits handling at rfc1902.Bits
Fixed missing SmiError exception class at pysnmp.proto.rfc1155
Fixed SNMP v1->v2c PDU proxy -- error-status & error-index fields from v1 PDU get copied over to v2c PDU in addition to the exception sentinels being set
The pysnmp version being used gets exposed to the MIB modules via the MibBuilder instance
The pysnmp version being used gets exposed to the MIB modules via the MibBuilder instance
The .setObjects() method of the SMI types now accepts append=False parameter to let the caller adding more than 255 elements over the course of multiple calls
Added support for some more missing fields of SMIv2 MACRO types
Example scripts rearranged in a way that IPv6 requirement is clearly encoded in the script's name
Fixed SNMPv2-SMI.NotificationType to expose .set/getReference() instead of .set/getRevision() which should not be there in the first place
Fixed non-implied-OID encoding in SNMP table indices
Fixed inconsistent SNMPv3 discovery and retrying algorithm
HMAC-SHA-2 Authentication Protocols support added (RFC-7860)
HMAC-SHA-2 Authentication Protocols support added (RFC-7860)
The pycryptodome dependency replaced with pycryptodomex as it is recommended by the upstream to avoid unwanted interference with PyCrypto package should it also be installed
Sphinx theme changed to Alabaster in the documentation
Minor adjustments towards pyasn1 0.4.x compatibility
Fixed ObjectIdentifier-into-ObjectIdentity casting at rfc1902.ObjectType MIB resolution harness
Fixed NetworkAddress object handling in SNMP table indices
Fixed MIB lookup by module:object.indices MIB object with InetAddressIPv{4,6} objects being in the index
Fixed non-translated PDU being retries at CommandGenerator what leads to wrong PDU version being sent and even a crash on incompatible PDU/SNMP message combination
Refactored partial SNMP message decoding to make it less dependent on unpublished pyasn1 API features.
Refactored partial SNMP message decoding to make it less dependent on unpublished pyasn1 API features.
Fix to MibTableRow.setFromName() to keep the input parameter type when it propagates to the return value. Before this fix ObjectIdentity.prettyPrint() may crash when rendering malformed SNMP table indices.
Fixed NotificationReceiver to include SNMPv1 TRAP Message community string into SNMPv2c/v3 TRAP PDU
Fixed multiple bugs in SNMP table indices rendering, especially the InetAddressIPv6 type which was severely broken.
Fixed crashing Bits.prettyPrint() implementation
Fixed crashing Bits.clone()/subtype() implementation
Fixed leaking exceptions bubbling up from the asyncio and Twisted adapters
Deprecated UsmUserData initialization parameters removed
Deprecated UsmUserData initialization parameters removed
Adapted to pyasn1 API changes introduced by release 0.3.1
Fix to a crash happening on inbound SNMP message having non-initialized fields
Fix to (persistent SNMP engine ID) file writing on Windows
Security fix to the bug introduced in 4.3.6: msgAuthoritativeEngineTime stopped changing over time and was returning the same timestamp (process start…
Security fix to the bug introduced in 4.3.6: msgAuthoritativeEngineTime stopped changing over time and was returning the same timestamp (process start time). This fix makes it growing as it should.
Your coding agent can read these notes before it upgrades. Set up the MCP server →