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.
Re-exports§
pub use self::http_server::Handlers;pub use self::http_server::RelayService;
Modules§
- client
- The server-side representation of an ongoing client relaying connection.
- clients
- The “Server” side of the client. Uses the
ClientConnManager. - http_
server - Low-level HTTP server components for embedding the relay service.
- streams
- Streams used in the server-side implementation of iroh relays.
- 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.