trishul-snmp

Ecosystem and Compatibility

tsnmp is the runtime package in the Trishul SNMP split. tsmi is the optional compiler/enrichment producer.

This page is the canonical summary of how those two packages fit together, what compatibility is expected today, and what the current producer/runtime contract looks like.


Roles

The intended split is deliberate:

tsnmp is designed to work without importing trishul-smi at runtime. Core manager operations must still work when no bundle is loaded and when only numeric OIDs are used.


Current released pairing

Latest known released pairing for the current documented contract:

Package Version
trishul-snmp 0.1.1
trishul-smi 0.4.3

What this pairing currently means in practice:

This is a compatibility window, not a forever-implicit promise for every future JSON shape. If upstream JSON IR versioning changes, tsnmp should accept that through an explicit compatibility path rather than by guesswork.


Supported runtime inputs

Today tsnmp accepts:

Important rule:

That means this is a valid and supported runtime flow:

from trishul_snmp import load_bundle

bundle = load_bundle("./IF-MIB.json")

and so is this:

from trishul_snmp import load_bundle

bundle = load_bundle("./compiled-mibs")

If dependency modules are missing, the expected failure mode is reduced enrichment fidelity, not runtime breakage of core manager operations.


1. Numeric-only runtime

Use tsnmp alone.

This is the lightest path and the default operational baseline.

2. Single-module enrichment

Compile one module and pass the resulting JSON file directly to tsnmp.

This is appropriate when you only care about a narrow subtree such as IF-MIB::ifTable.

Example:

from trishul_snmp import V2cManager, load_bundle

bundle = load_bundle("./IF-MIB.json")

3. Directory bundle enrichment

Compile a broader module set and load the directory.

This is the better fit when you want:


Current producer status

The main tsnmp/tsmi producer/runtime contract is now in a healthier state.

Current state with trishul-smi 0.4.3:

So:


What tsnmp does not do

To keep the boundary clear, tsnmp currently does not do any of the following:

If non-tsmi JSON support becomes important later, it should land as an explicit adapter contract or normalization layer, not as undocumented best-effort ingestion.


Practical status

At the current released pairing, the ecosystem is in a usable state:

For deeper details, see: