webex-message-handler-0.1.0 has been yanked.
webex-message-handler
Lightweight Rust crate for receiving and decrypting Webex messages over the Mercury WebSocket, without the full Webex SDK.
Features
- Mercury WebSocket — connects to Webex Mercury with auth, ping/pong heartbeat, and automatic reconnection with exponential backoff
- KMS decryption — ECDH P-256 key exchange + A256KW/A256GCM JWE decryption, all handled transparently
- WDM device registration — automatic device lifecycle management
- Async Tokio — built on
tokioandtokio-tungstenitefor high-performance async I/O - Structured logging — uses the
tracingecosystem
Installation
Add to your Cargo.toml:
[]
= { = "https://github.com/ecopelan/webex-message-handler-rs" }
Quick Start
use ;
async
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
token |
String |
(required) | Webex bot or user access token |
ping_interval |
f64 |
15.0 |
Mercury ping interval in seconds |
pong_timeout |
f64 |
14.0 |
Pong response timeout in seconds |
reconnect_backoff_max |
f64 |
32.0 |
Max reconnect backoff in seconds |
max_reconnect_attempts |
u32 |
10 |
Max consecutive reconnection attempts |
API
See API.md for the full API reference.
Architecture
WebexMessageHandler (orchestrator)
├── DeviceManager — WDM register/refresh/unregister
├── MercurySocket — WebSocket + auth + heartbeat + reconnect
├── KmsClient — ECDH handshake + key retrieval
└── MessageDecryptor — JWE A256KW+A256GCM decryption
Running the Example
WEBEX_BOT_TOKEN=your_token_here
License
MIT