Skip to main content

Crate iroh_services

Crate iroh_services 

Source
Expand description

iroh-services is the client side of interacting with iroh-services. iroh-services gives visibility into a running iroh network by pushing metrics aggregations from iroh endpoints into a central hub for monitoring.

Typical setup looks something like this:

use iroh::Endpoint;
use iroh_services::Client;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let endpoint = Endpoint::bind().await?;

    // needs IROH_SERVICES_API_SECRET set to an environment variable
    // client will now push endpoint metrics to iroh-services.
    let client = Client::builder(&endpoint)
        .api_secret_from_env()?
        .build()
        .await?;

    // we can also ping the service just to confirm everything is working
    client.ping().await?;

    Ok(())
}

Re-exports§

pub use self::net_diagnostics::DiagnosticsReport;
pub use self::net_diagnostics::checks::run_diagnostics;
pub use self::api_secret::ApiSecret;
pub use self::protocol::ALPN;
pub use anyhow;

Modules§

api_secret
caps
net_diagnostics
Network diagnostics for iroh-powered applications.
protocol

Structs§

Client
Client is the main handle for interacting with iroh-services. It communicates with iroh-services entirely through an iroh endpoint, and is configured through a builder. Client requires either an Ssh Key or ApiSecret
ClientBuilder
ClientBuilder provides configures and builds a iroh-services client, typically created with Client::builder
ClientHost
Protocol handler for cloud-to-endpoint connections.
Registry
A registry for [MetricsGroup].

Constants§

API_SECRET_ENV_VAR_NAME
CLIENT_HOST_ALPN
The ALPN for sending messages from the cloud node to the client.
IROH_SERVICES_VERSION
Version of this crate.

Statics§

IROH_VERSION
Version of iroh this crate was built against.

Type Aliases§

ClientHostClient