Module iroh_relay::server
source · 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§
- 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.
- A running Relay + STUN server.
- Configuration for the full Relay & STUN server.
- Configuration for the STUN server.
- StunMetrics tracked for the DERPER
- TLS configuration for Relay server.
Enums§
- TLS certificate configuration.
- The main underlying IO stream type used for the relay server.