wireband-edge 0.4.0

Lightweight Wire.Band client — semantic data middleware for any domain (IoT, AI/ML, DeFi, legal, geospatial, supply chain, and more)
Documentation
//! wireband-edge — Lightweight Wire.Band client for IoT gateway hardware.
//!
//! # Architecture
//!
//! ```text
//! [MQTT broker] ──► MqttConnector ──► WireBandClient ──► Wire.Band backend
//!  (or serial/BLE)  classify+frame     ring buffer          /iot/v1/ingest/batch
//!                   delta filter        flush loop
//!                                       retry+backoff
//! ```
//!
//! # Minimal example
//!
//! ```no_run
//! use wireband_edge::client::{WireBandClient, ClientConfig};
//!
//! #[cfg(feature = "mqtt")]
//! use wireband_edge::mqtt::MqttConnector;
//!
//! #[tokio::main]
//! async fn main() {
//!     let client = WireBandClient::new(ClientConfig {
//!         backend_url: "http://localhost:8000".into(),
//!         device_id:   "factory-rpi4".into(),
//!         ..Default::default()
//!     });
//!     client.start();
//!
//!     #[cfg(feature = "mqtt")]
//!     MqttConnector::new("mqtt://localhost:1883", 0.02)
//!         .run(client, vec!["sensors/#".into()])
//!         .await
//!         .unwrap();
//! }
//! ```

pub mod classifier;
pub mod client;
pub mod error;
pub mod frame;
pub mod symbols;

#[cfg(feature = "crypto")]
pub mod crypto;

#[cfg(feature = "mqtt")]
pub mod mqtt;

#[cfg(feature = "serial")]
pub mod serial;

#[cfg(feature = "ble")]
pub mod ble;

#[cfg(feature = "coap")]
pub mod coap;

#[cfg(feature = "modbus")]
pub mod modbus;

#[cfg(feature = "agent")]
pub mod agent;

#[cfg(feature = "infer-onnx")]
pub mod infer_onnx;

#[cfg(feature = "infer-tflite")]
pub mod infer_tflite;

#[cfg(feature = "python")]
pub mod python;

pub use client::{BufferedEvent, ClientConfig, ClientStats, WireBandClient};
pub use error::{Result, WireBandError};

#[cfg(feature = "agent")]
pub use agent::{DeviceTwin, OtaManager, OtaUpdate, Watchdog};