{"library":"pysmi","title":"PySMI: SNMP MIB Parser and Converter","description":"PySMI is a pure-Python implementation of an SNMP SMI MIB parser and conversion library. It takes ASN.1 MIBs and can transform them into various formats, including JSON documents and PySNMP-compatible Python modules. It understands SMIv1, SMIv2, and common de-facto SMI dialects, and can automatically pull MIBs from local directories, ZIP archives, and HTTP servers. The current version is 1.6.3 and it actively supports Python 3.9+.","language":"python","status":"active","last_verified":"Thu May 14","install":{"commands":["pip install pysmi"],"cli":{"name":"mibdump","version":"SNMP SMI/MIB library version 2.0.0, written by Ilya Etingof <etingof@gmail.com>"}},"imports":["from pysmi.compiler import MibCompiler","from pysmi.parser.smi import SmiV2Parser","from pysmi.codegen.json import JsonCodeGen","from pysmi.codegen.pysnmp import PySnmpCodeGen","from pysmi.reader.localfile import FileReader","from pysmi.writer.callback import CallbackWriter"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom pysmi.compiler import MibCompiler\nfrom pysmi.parser.smi import SmiV2Parser\nfrom pysmi.codegen.json import JsonCodeGen\nfrom pysmi.reader.callback import CallbackReader\nfrom pysmi.writer.callback import CallbackWriter\n\n# Example MIB content (simplified for demonstration)\nmib_content = \"\"\"\nFOO-MIB DEFINITIONS ::= BEGIN\n  IMPORTS\n    MODULE-IDENTITY, OBJECT-TYPE, enterprises\n      FROM SNMPv2-SMI;\n\n  fooModule MODULE-IDENTITY\n    LAST-UPDATED \"202301010000Z\"\n    ORGANIZATION \"Example Corp\"\n    CONTACT-INFO \"support@example.com\"\n    DESCRIPTION\n      \"The MIB module for example devices.\"\n    REVISION \"202301010000Z\"\n    DESCRIPTION \"Initial revision.\"\n    ::= { enterprises 99999 }\n\n  fooObjects OBJECT IDENTIFIER ::= { fooModule 1 }\n\n  fooStatus OBJECT-TYPE\n    SYNTAX INTEGER { up(1), down(2) }\n    MAX-ACCESS read-only\n    STATUS current\n    DESCRIPTION\n      \"The operational status of a foo device.\"\n    ::= { fooObjects 1 }\n\nEND\n\"\"\"\n\ndef store_json_mib(mib_name, mib_data, *args):\n    print(f\"--- Compiled MIB: {mib_name} ---\")\n    print(mib_data)\n\n# Initialize compiler infrastructure\nmibCompiler = MibCompiler(\n    SmiV2Parser(),\n    JsonCodeGen(),\n    CallbackWriter(store_json_mib)\n)\n\n# Add a reader that can provide our MIB content by name\nmibCompiler.addSources(CallbackReader(lambda mibName, **kwargs: mib_content if mibName == 'FOO-MIB' else None))\n\n# Compile the MIB\n# Note: 'rebuild=True' forces compilation even if cached, 'genTexts=True' includes MIB descriptions\nresults = mibCompiler.compile('FOO-MIB', rebuild=True, genTexts=True)\n\nprint(f\"Compilation results: {results}\")\n","lang":"python","description":"This quickstart demonstrates how to compile an in-memory ASN.1 MIB module (`FOO-MIB`) into a JSON document using PySMI's `MibCompiler`. It sets up a `CallbackReader` to supply the MIB content and a `CallbackWriter` to print the resulting JSON to the console, illustrating the core transformation process.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-14","installed_version":"1.6.3","pypi_latest":"2.0.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.6,"avg_import_s":0.87,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pysmi","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.81,"mem_mb":12.4,"disk_size":"24.0M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pysmi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.91,"mem_mb":12.3,"disk_size":"23.4M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pysmi","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.5,"import_time_s":0.59,"mem_mb":12.6,"disk_size":"25M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pysmi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.57,"mem_mb":12.3,"disk_size":"24M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pysmi","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1,"mem_mb":13.8,"disk_size":"26.7M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pysmi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.14,"mem_mb":13.7,"disk_size":"26.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pysmi","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.7,"import_time_s":0.85,"mem_mb":13.8,"disk_size":"27M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pysmi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.89,"mem_mb":13.7,"disk_size":"26M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pysmi","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.83,"mem_mb":13.5,"disk_size":"18.4M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pysmi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.96,"mem_mb":13.4,"disk_size":"17.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pysmi","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":0.85,"mem_mb":13.5,"disk_size":"19M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pysmi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.18,"mem_mb":13.4,"disk_size":"18M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pysmi","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.83,"mem_mb":14.8,"disk_size":"18.1M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pysmi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.94,"mem_mb":13.8,"disk_size":"17.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pysmi","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":0.82,"mem_mb":14.7,"disk_size":"19M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pysmi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.2,"mem_mb":14.7,"disk_size":"18M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pysmi","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.78,"mem_mb":12.1,"disk_size":"22.8M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pysmi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.81,"mem_mb":12.1,"disk_size":"22.7M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pysmi","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.9,"import_time_s":0.67,"mem_mb":12.1,"disk_size":"23M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pysmi","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.77,"mem_mb":12.1,"disk_size":"23M"}]}}