dpdk_telemetry/lib.rs
1//! # dpdk-telemetry
2//!
3//! A Rust client library for reading DPDK application telemetry via Unix socket.
4//! No DPDK headers or shared libraries required — just filesystem access to the
5//! telemetry socket (typically `/var/run/dpdk/rte/dpdk_telemetry.v2`).
6//!
7//! ## Quick start
8//!
9//! ```no_run
10//! use dpdk_telemetry::{TelemetrySocket, discovery, protocol};
11//!
12//! // Auto-discover running DPDK instances
13//! let sockets = discovery::discover_sockets().unwrap();
14//!
15//! // Connect to the first one
16//! let mut sock = TelemetrySocket::connect(&sockets[0]).unwrap();
17//!
18//! // List ports
19//! let port_ids = protocol::parse_ethdev_list(&sock.request("/ethdev/list").unwrap()).unwrap();
20//!
21//! // Get stats for port 0
22//! let stats = protocol::parse_ethdev_stats(
23//! &sock.request("/ethdev/stats,0").unwrap(), 0
24//! ).unwrap();
25//! println!("RX packets: {}", stats.ipackets);
26//! ```
27
28pub mod alerts;
29pub mod discovery;
30pub mod history;
31pub mod model;
32pub mod protocol;
33pub mod rates;
34pub mod socket;
35
36pub use socket::TelemetrySocket;