Does Mibble MIB Parser Work as an SNMP Stack or MIB Compiler?

Updated

No. Mibble is neither an SNMP stack nor a MIB compiler. It is an open-source SNMP MIB (or SMI) parser library for Java: it reads MIB files written in ASN.1 syntax and exposes an API to access the information they contain, including OIDs, types, descriptions, comments, and the original MIB source text. If you need to send or receive SNMP messages, or to compile MIBs into another form, Mibble alone will not do that job.

What Mibble actually does

Mibble's scope is reading and representing MIB content. The project describes itself as providing "the functionality for reading SNMP MIB files (i.e. a SMI parser)."

That means it is useful when your problem is understanding what is inside a MIB file, not when your problem is talking to a network device.

Mibble vs. an SNMP stack vs. a MIB compiler

Capability Mibble SNMP stack (e.g. SNMP4J, Westhawk) MIB compiler
Reads MIB files (ASN.1/SMI) Yes Not its primary role Yes
Exposes OIDs, types, descriptions, comments, source text Yes No Varies
Sends/receives SNMP requests and responses No Yes No
Produces compiled/derived MIB output No (but can be a basis for one) No Yes

The practical takeaway: Mibble answers "what does this MIB define?", an SNMP stack answers "how do I talk SNMP to this device?", and a MIB compiler answers "how do I turn this MIB into something else?"

If you need both MIB parsing and SNMP manager functionality

Use Mibble alongside a stack rather than instead of one. The project explicitly notes you can use Mibble together with either SNMP4J or Westhawk's SNMP stack when you need both MIB parsing and SNMP manager functionality.

A typical arrangement:

  1. Use Mibble to load and parse the MIB files, so you know the OIDs, types, and descriptions you care about.
  2. Use the SNMP stack to perform the actual manager operations against devices.
  3. Map between the two using the OID and type information Mibble gives you.

If you need a MIB compiler

Mibble can serve as the basis for one, because it provides all the readable information from the MIB files. It does not ship as a compiler itself, so you would build the compilation or transformation logic on top of its parsing output.

What Mibble does include

Beyond the parsing library, the project lists:

  • A Java library for parsing SNMP MIBs
  • All standard IANA and IETF MIBs
  • A graphical MIB browser with a simple SNMP manager
  • Command-line apps for MIB formatting and validation

Note the "simple SNMP manager" inside the graphical browser is a bundled tool, not a general-purpose SNMP stack you would build an application on. The library's stated role remains MIB parsing.

Licensing and where to get it

Mibble is dual-licensed under GNU GPL and a commercial license, with full source code provided under both. The GPL permits free usage, but redistribution of Mibble or derived code is restricted to the same license; the commercial licenses permit inclusion in almost any software product and are purchased from the Mibble Store. The project is available on GitHub.

For more on SNMP architecture

If you need background on how SNMP management frameworks are structured, the project points to RFC 3411, "An Architecture for Describing SNMP Management Frameworks."