wireband-edge
Lightweight Wire.Band client for IoT gateway hardware — Raspberry Pi, NVIDIA Jetson, industrial PCs.
Collects telemetry from MQTT, serial ports, BLE, Modbus, and CoAP, frames it with a 2-byte theta-symbol prefix, and flushes batches to the Wire.Band backend over HTTPS (rustls — no OpenSSL dependency).
Quick start
# MQTT gateway (default feature)
Installation
# All protocol connectors + agent
Features
| Feature | Description |
|---|---|
mqtt (default) |
MQTT connector via rumqttc |
serial |
UART/RS-232/RS-485 via tokio-serial |
ble |
Bluetooth LE GATT notifications via btleplug |
modbus |
Modbus TCP register poller via tokio-modbus |
coap |
CoAP UDP server for constrained sensors via coap-lite |
agent |
Device twin, OTA updates, hardware watchdog |
infer-onnx |
Edge inference via ONNX Runtime |
infer-tflite |
Edge inference via TensorFlow Lite |
python |
PyO3 bindings (built via maturin) |
Library usage
use ;
use MqttConnector;
async
Protocol connectors
BLE (Bluetooth Low Energy)
use BleConnector;
use Duration;
new?
.scan_duration
.topic_prefix
.delta_threshold
.run
.await?;
Serial (UART / RS-232 / RS-485)
use SerialConnector;
new
.topic_prefix
.delta_threshold
.run
.await?;
CoAP (constrained sensors)
use CoapServer;
// Sensors PUT to coap://gateway-ip/sensors/zone-a/temp
new
.topic_prefix
.run
.await?;
Modbus TCP
use ;
use Duration;
new
.slave
.poll_interval
.topic_prefix
.registers
.run
.await?;
Agent (device twin, OTA, watchdog)
use ;
use Duration;
// Device twin — sync reported/desired state
let twin = new;
twin.update_reported.await;
twin.sync.await;
// OTA firmware update
new
.run
.await?;
// Watchdog — kicks /dev/watchdog + emits heartbeat
spawn;
Edge inference
ONNX Runtime
use OnnxInference;
let model = from_file?;
// In your sensor loop:
let scores = model.run.await?;
if scores > 0.85
TensorFlow Lite
use TfliteInference;
let model = from_file?;
let scores = model.run.await?;
Python extension
Install the Rust-backed Python extension via maturin:
=
Cross-compilation
Pre-built binaries for common targets are available on the GitHub releases page.
To cross-compile yourself:
License
MIT