Expand description
§Hermes Client
This module provides a high-level client for connecting to Hermes data streams. The client maintains multiple WebSocket connections for redundancy and provides automatic deduplication of messages.
§Features
- Multiple redundant WebSocket connections
- Automatic message deduplication
- Exponential backoff for reconnections
- Configurable timeouts and channel capacities
- Builder pattern for easy configuration
§Basic Usage
ⓘ
use hermes_client::{HermesClientBuilder, HermesClientMessageSubscribe};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let mut client = HermesClientBuilder::default()
.with_num_connections(2)
.build()?;
let mut receiver = client.start().await?;
// Subscribe to price feeds
let subscribe_request = HermesClientMessageSubscribe {
// ... configure subscription
};
client.subscribe(subscribe_request).await?;
// Process incoming messages
while let Some(response) = receiver.recv().await {
println!("Received: {:?}", response);
}
Ok(())
}Structs§
- Hermes
Client - A high-performance client for connecting to Hermes data streams.
- Hermes
Client Builder - A builder for creating
HermesClientinstances with customizable configuration.