Expand description
§async-snmp
Modern, async-first SNMP client library for Rust.
§Features
- Full SNMPv1, v2c, and v3 support
- Async-first API built on Tokio
- Zero-copy BER encoding/decoding
- Type-safe OID and value handling
- Config-driven client construction
§Quick Start
use async_snmp::{Auth, Client, oid};
use std::time::Duration;
#[tokio::main]
async fn main() -> Result<(), async_snmp::Error> {
// SNMPv2c client
let client = Client::builder("192.168.1.1:161", Auth::v2c("public"))
.timeout(Duration::from_secs(5))
.connect()
.await?;
let result = client.get(&oid!(1, 3, 6, 1, 2, 1, 1, 1, 0)).await?;
println!("sysDescr: {:?}", result.value);
Ok(())
}§SNMPv3 Example
use async_snmp::{Auth, Client, oid, v3::{AuthProtocol, PrivProtocol}};
#[tokio::main]
async fn main() -> Result<(), async_snmp::Error> {
let client = Client::builder("192.168.1.1:161",
Auth::usm("admin")
.auth(AuthProtocol::Sha256, "authpass123")
.privacy(PrivProtocol::Aes128, "privpass123"))
.connect()
.await?;
let result = client.get(&oid!(1, 3, 6, 1, 2, 1, 1, 1, 0)).await?;
println!("sysDescr: {:?}", result.value);
Ok(())
}Re-exports§
pub use agent::Agent;pub use agent::AgentBuilder;pub use agent::VacmBuilder;pub use agent::VacmConfig;pub use agent::View;pub use client::Auth;pub use client::BulkWalk;pub use client::Client;pub use client::ClientBuilder;pub use client::ClientConfig;pub use client::CommunityVersion;pub use client::OidOrdering;pub use client::UsmAuth;pub use client::UsmBuilder;pub use client::V3SecurityConfig;pub use client::Walk;pub use client::WalkMode;pub use client::WalkStream;pub use error::AuthErrorKind;pub use error::CryptoErrorKind;pub use error::DecodeErrorKind;pub use error::EncodeErrorKind;pub use error::Error;pub use error::ErrorStatus;pub use error::OidErrorKind;pub use error::Result;pub use handler::BoxFuture;pub use handler::GetNextResult;pub use handler::GetResult;pub use handler::MibHandler;pub use handler::OidTable;pub use handler::RequestContext;pub use handler::Response;pub use handler::SecurityModel;pub use handler::SetResult;pub use message::SecurityLevel;pub use notification::Notification;pub use notification::NotificationReceiver;pub use notification::NotificationReceiverBuilder;pub use notification::UsmUserConfig;pub use notification::validate_notification_varbinds;pub use oid::Oid;pub use pdu::GenericTrap;pub use pdu::Pdu;pub use pdu::PduType;pub use pdu::TrapV1Pdu;pub use transport::TcpTransport;pub use transport::Transport;pub use transport::UdpTransport;pub use v3::AuthProtocol;pub use v3::EngineCache;pub use v3::LocalizedKey;pub use v3::MasterKey;pub use v3::MasterKeys;pub use v3::ParseProtocolError;pub use v3::PrivProtocol;pub use value::Value;pub use varbind::VarBind;pub use version::Version;
Modules§
- agent
- SNMP Agent (RFC 3413).
- ber
- BER (Basic Encoding Rules) codec for SNMP.
- cli
- CLI utilities for async-snmp.
- client
- SNMP client implementation.
- error
- Error types for async-snmp.
- format
- Formatting utilities for SNMP values.
- handler
- Handler types and traits for SNMP MIB operations.
- message
- SNMP message wrappers.
- notification
- SNMP Notification Receiver (RFC 3413).
- oid
- Object Identifier (OID) type.
- pdu
- SNMP Protocol Data Units (PDUs).
- prelude
- Prelude module for convenient imports.
- testing
- Testing utilities exposed via the
testingfeature. - transport
- Transport layer abstraction.
- v3
- SNMPv3 security module.
- value
- SNMP value types.
- varbind
- Variable binding (VarBind) type.
- version
- SNMP version enumeration.
Macros§
- oid
- Macro to create an OID at compile time.
Type Aliases§
- Shared
Client - Type alias for a client using the shared UDP transport.
- TcpClient
- Type alias for a client using a TCP connection.
- UdpClient
- Type alias for a client using a dedicated UDP socket.