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.
Modules§
- testing
test-utils - Exposes functions to quickly configure a server suitable for testing.
Structs§
- Client
Rate Limit - Per-client rate limit configuration.
- Limits
- Rate limits.
- Metrics
- Metrics tracked for the relay server
- Quic
Config - Configuration for the QUIC server.
- Relay
Config - Configuration for the Relay HTTP and HTTPS server.
- Relay
Metrics - All metrics tracked in the relay server.
- Reloading
Resolver - A Certificate resolver that reloads the certificate every interval
- Server
- A running Relay + QAD server.
- Server
Config - Configuration for the full Relay.
- TlsConfig
- TLS configuration for Relay server.
Enums§
- Access
- Access restriction for an endpoint.
- Access
Config - Controls which endpoints are allowed to use the relay.
- Cert
Config - TLS certificate configuration.
- Spawn
Error - Server spawn errors
- Supervisor
Error - Server task errors
Constants§
- DEFAULT_
CERT_ RELOAD_ INTERVAL - The default certificate reload interval.