Roadmap
Tracks shipped scope, near-term work, and deferred work.
Status: planned | in progress | done | deferred
v0.3.0 — shipped 2026-05-15
| # |
Item |
Status |
Notes |
| 1 |
Simulation rule engine |
done |
CounterRule, RandomNumericRule, UptimeRule, TimestampRule plus SimulationRule protocol. InMemoryObjectSource now stores and evaluates rules alongside static values. |
| 2 |
InMemoryObjectSource.from_bundle() |
done |
Auto-populates a source from a MibBundle with syntax-appropriate defaults, instance suffix generation, and deprecated-object filtering. |
| 3 |
MibBundle iteration helpers |
done |
iter_objects(), iter_notifications(), and search() allow in-memory bundle queries without a separate database layer. |
| 4 |
NotificationEvent.to_dict() |
done |
JSON-safe dict serialization for WebSocket broadcast and storage use cases. |
v0.2.0 — shipped 2026-05-08
Tracked by GitHub milestone 0.2.0 and umbrella issue #7.
| # |
Item |
Status |
Notes |
| 1 |
Notification metadata retention and shared plumbing |
done |
#2. description and structured members are retained, and lower-level request prep helpers are shared across manager and notify paths. |
| 2 |
Outbound SNMPv2c trap/inform send APIs |
done |
#4. V2cNotifier sends numeric or symbolic notifications and auto-populates standard SNMPv2 notification varbinds. |
| 3 |
Inbound SNMPv2c notification listener/server transport |
done |
#3. V2cNotificationListener supports bind controls, community allowlists, trap/inform decode, and automatic inform acknowledgement. |
| 4 |
Notification event/render/decode/CLI tooling |
done |
#5. NotificationEvent now carries notification metadata and member bindings; CLI trap/inform/listen/decode commands are wired. |
| 5 |
Narrow read-only responder / simulator layer |
done |
#6. V2cResponder plus in-memory and callback-backed sources now cover GET, GET_NEXT, and GET_BULK for tests, demos, and simulator-style use. |
See v0.2.0 Implementation Prep for the
coding sequence, package evolution, and pre-implementation lock decisions.
v0.1.1 — shipped 2026-05-07
| # |
Item |
Status |
Notes |
| 1 |
Canonical display rendering for scalar instance aliases |
done |
Numeric translation and enrichment prefer MODULE::symbol.0 for scalar .0 display without changing exact lookup semantics. |
| 2 |
Live benchmark harness |
done |
scripts/benchmark_snmpd.py compares raw vs enriched API and CLI paths against a live SNMP agent. |
| 3 |
Alias-policy regression fixtures |
done |
Synthetic bundle fixtures isolate tsmi sidecar contract validation from tsnmp display-policy behavior. |
v0.1.0 — shipped 2026-05-07
| # |
Item |
Status |
Notes |
| 1 |
Async SNMPv2c manager runtime |
done |
V2cManager is the primary public entry point. |
| 2 |
Read-only manager operations |
done |
get, get_next, get_bulk, walk, bulkwalk. |
| 3 |
In-tree wire codec |
done |
BER / ASN.1 / SNMPv2c message and PDU encode/decode live under wire/. |
| 4 |
UDP transport and request dispatcher |
done |
Timeout, retry, community matching, and request-id matching. |
| 5 |
Optional compiled-JSON bundle loading |
done |
Single module JSON or bundle directory; sidecars optional. |
| 6 |
Offline translation and live enrichment |
done |
Symbolic input resolution and display rendering stay optional. |
| 7 |
Thin CLI |
done |
Package wrapper for smoke tests and simple operator workflows. |
| 8 |
CI, release automation, and docs baseline |
done |
Lint, typecheck, tests, coverage, release workflow, and package docs. |
Near-term hardening
| # |
Item |
Status |
Notes |
| 1 |
Forward-compatibility with future tsmi IR version fields |
planned |
Accept explicit schema/version metadata once upstream lands it without making sidecars mandatory. |
| 2 |
Better optional rendering fidelity from bundle metadata |
planned |
Improve display names and values when metadata is available without moving compiler logic into tsnmp. |
| 3 |
Broader live-agent compatibility coverage |
planned |
Expand UDP integration coverage around walk behavior and device quirks. |
Explicitly deferred
| # |
Item |
Status |
Notes |
| 1 |
Raw MIB file or raw MIB directory ingestion |
deferred |
Keep the runtime/compiler split clear; use compiled JSON only. |
| 2 |
Direct runtime dependency on trishul-smi |
deferred |
tsnmp consumes artifacts, not the compiler package. |
| 3 |
Public generic JSON normalization layer for non-tsmi schemas |
deferred |
Only add with an explicit adapter contract and real cross-schema use cases. |
| 4 |
pysnmp API compatibility layer |
deferred |
Avoid carrying legacy surface area in v0.1. |
| 5 |
Sync wrapper |
deferred |
Async-first package API remains the primary runtime surface. |
| 6 |
SNMPv1 manager support |
deferred |
Not required for the initial modern runtime baseline. |
| 7 |
SNMPv3 |
deferred |
Significant auth/privacy scope increase; not justified for v0.1. |
| 8 |
set |
deferred |
Write operations need separate safety and API design. |
| 9 |
Daemon/service packaging for long-running listeners |
deferred |
Library-level listener and responder APIs exist on main branch; daemonization is still out of scope. |
| 10 |
Full agent framework or writable responder support |
deferred |
v0.2.0 only targets a narrow read-only simulator/responder. |