Skip to main content

Crate seedlink_rs_client

Crate seedlink_rs_client 

Source
Expand description

Async SeedLink client for real-time seismic data streaming.

Connect to SeedLink v3/v4 servers (IRIS, BMKG, GEOFON, etc.) and receive miniSEED records in real-time over TCP.

§Example

use seedlink_rs_client::SeedLinkClient;

let mut client = SeedLinkClient::connect("rtserve.iris.washington.edu:18000").await?;
client.station("ANMO", "IU").await?;
client.select("BHZ").await?;
client.data().await?;
client.end_stream().await?;

while let Some(frame) = client.next_frame().await? {
    println!("seq={}, payload={} bytes", frame.sequence(), frame.payload().len());
}

Structs§

ClientConfig
Configuration for SeedLinkClient connections.
DataFrame
Owned frame with decoded miniSEED record.
ReconnectConfig
Configuration for automatic reconnect with exponential backoff.
ReconnectingClient
A wrapper around SeedLinkClient that automatically reconnects on disconnect.
SeedLinkClient
Async SeedLink client for connecting to seismic data servers.
ServerInfo
Information about the connected SeedLink server, parsed from HELLO.
StationKey
Network + station identifier used as a key for sequence tracking.

Enums§

ClientError
Errors that can occur during SeedLink client operations.
ClientState
Client connection state machine.
OwnedFrame
An owned SeedLink frame with its payload copied to the heap.

Traits§

Stream
A stream of values produced asynchronously.

Functions§

frame_stream
Convert a streaming SeedLinkClient into a Stream of frames.

Type Aliases§

Result
Convenience alias for Result<T, ClientError>.