Skip to main content

What is direct data rate?

When two iroh endpoints connect, traffic either flows directly between them (peer-to-peer) or gets routed through a relay server. Direct connections are faster and cheaper. Relayed traffic adds latency and burns relay bandwidth. Direct data rate is the percentage of your network’s traffic flowing directly. A high rate means NAT traversal is working and your users are getting the best possible connection. A low rate means too much traffic is falling back to relays, which is worth investigating. Direct data rate metric This guide walks you through hooking up your first endpoint to Iroh Services so you can see direct data rate and other connectivity metrics for your own network. You’ll need an Iroh Services account with an API key.

Add the Iroh Services Client

In Rust, add the iroh-services crate to your Cargo.toml:
The Python, Swift, and Kotlin bindings ship the services client as part of iroh-ffi, with no extra dependency needed.

Connect Your Endpoint

Then, in your code, create a client and connect your endpoint to Iroh Services. Giving the endpoint a name makes it easy to identify on the dashboard; unnamed endpoints are harder to distinguish from each other.

View Your Endpoint on the Dashboard

Go to your project’s Endpoints page. You should see your endpoint listed as online. Click on it to view details.

Next steps

Diagnose a connectivity issue

Run remote diagnostic reports on your users’ endpoints to find out why connections fail.

Add a relay

Configure dedicated relays for your endpoints and learn why they matter for production.

Build a chat app

Build a peer-to-peer chat application from scratch using the iroh gossip protocol.