async-snmp
Modern, async-first SNMP client library for Rust.
Features
- Full protocol support: SNMPv1, v2c, and v3 (USM)
- Async-first: Built on Tokio for high-performance async I/O
- All operations: GET, GETNEXT, GETBULK, SET, WALK, BULKWALK
- SNMPv3 security: MD5/SHA-1/SHA-2 authentication, DES/AES-128/192/256 privacy
- Multiple transports: UDP, TCP, and shared UDP for high-throughput polling
- Zero-copy decoding: Minimal allocations using
bytescrate - Type-safe: Compile-time OID validation with
oid!macro
Protocol Support Matrix
| Feature | v1 | v2c | v3 |
|---|---|---|---|
| GET / GETNEXT | Y | Y | Y |
| GETBULK | - | Y | Y |
| SET | Y | Y | Y |
| WALK / BULKWALK | Y | Y | Y |
| Traps | Y | Y | Y |
| Informs | - | Y | Y |
SNMPv3 Security
Authentication: MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
Privacy: DES, AES-128, AES-192, AES-256
Installation
Or add to your Cargo.toml:
[]
= "0.1"
Quick Start
SNMPv2c
use ;
use Duration;
async
SNMPv3 with Authentication and Privacy
use ;
async
Walking a Subtree
use ;
use StreamExt;
async
High-Throughput Polling (Shared Transport)
For monitoring systems polling thousands of targets:
use ;
async
Documentation
Full API documentation is available on docs.rs.
Feature Flags
| Feature | Description |
|---|---|
testing |
Expose transport::MockTransport for downstream testing |
serde |
Serialize/Deserialize support for configuration types |
cli |
CLI utilities (asnmp-get, asnmp-walk, asnmp-set) |
Minimum Supported Rust Version
This crate requires Rust 1.88 or later. The MSRV may be increased in minor version releases.
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.