Available on crate feature
server
only.Expand description
A fully-fledged iroh-relay server over HTTP or HTTPS.
This module provides an API to run a full fledged iroh-relay server. It is primarily
used by the iroh-relay
binary in this crate. It can be used to run a relay server in
other locations however.
This code is fully written in a form of structured-concurrency: every spawned task is always attached to a handle and when the handle is dropped the tasks abort. So tasks can not outlive their handle. It is also always possible to await for completion of a task. Some tasks additionally have a method to do graceful shutdown.
The relay server hosts the following services:
- HTTPS
/relay
: The main URL endpoint to which clients connect and sends traffic over. - HTTPS
/ping
: Used for net_report probes. - HTTPS
/generate_204
: Used for net_report probes. - STUN: UDP port for STUN requests/responses.
Modules§
- testing
test-utils
Exposes functions to quickly configure a server suitable for testing.
Structs§
- Per-client rate limit configuration.
- Rate limits.
- Metrics tracked for the relay server
- Configuration for the QUIC server.
- Configuration for the Relay HTTP and HTTPS server.
- All metrics tracked in the relay server.
- A Certificate resolver that reloads the certificate every interval
- A running Relay + STUN server.
- Configuration for the full Relay & STUN server.
- Configuration for the STUN server.
- Metrics tracked for the STUN server.
- TLS configuration for Relay server.
Enums§
- Access restriction for a node.
- Controls which nodes are allowed to use the relay.
- TLS certificate configuration.
Constants§
- The default certificate reload interval.