A pure-Python SNMP SMI MIB parser that converts ASN.1 MIBs into JSON documents and pysnmp modules.
PySMI is a pure-Python SNMP SMI MIB parser that converts ASN.1 MIBs into JSON documents and pysnmp modules. It automates the processing of MIB files used in network management, enabling developers to work with SNMP data more efficiently. The tool supports multiple SMI versions and sources, simplifying MIB handling for SNMP-based applications.
Network engineers and developers working with SNMP protocols, especially those using pysnmp or needing to convert MIBs for integration into monitoring systems or custom network tools.
PySMI offers a lightweight, Python-native solution for MIB parsing without external dependencies, with seamless integration into pysnmp and automated MIB fetching from multiple sources, reducing manual configuration.
SNMP MIB parser
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports SMIv1, SMIv2, and de-facto dialects, ensuring it can parse a wide range of legacy and modern MIB files without external tools.
Fetches MIBs automatically from local directories, ZIP archives, HTTP, and FTP servers, reducing manual configuration and setup time.
Seamlessly works with pysnmp behind the scenes, as pysnmp calls PySMI for MIB download and compilation, simplifying SNMP application development.
Converts MIBs to JSON documents and pysnmp modules, allowing easy integration into data pipelines, web dashboards, or Python codebases.
Only compatible with Python up to version 3.7, which excludes modern Python environments (3.8+) and may limit adoption in new projects.
The README admits it only generates JSON and pysnmp modules 'as of this moment,' lacking support for other common formats like YAML or XML.
As a pure-Python implementation, parsing and converting large MIB collections can be slower compared to C-based alternatives, impacting efficiency in high-volume scenarios.
Automated fetching relies on configured MIB repositories; if sources are unavailable or change, it can fail, requiring manual intervention or fallback setups.