Choose a transport by its message semantics and peer requirements, or a native service client by its protocol. Transport endpoints share lifecycle, owned-send and IO scheduling conventions; service clients document their request and reply contracts.
| Module | Server | Client | Configuration | Performance |
|---|---|---|---|---|
| TCP | Create | Create | Framing and sessions | Results |
| UDP | Create | Create | Cast and datagram limits | Results |
| RUDP | Create | Create | ARQ and limits | Results |
| WebSocket / WSS | Create | Create | Upgrade and messages | Results |
| HTTP / HTTPS | Create | Create | Messages and Keep-Alive | Results |
| TLS / mTLS | Create | Create | Certificates and mutual authentication | Results |
| MySQL | External MySQL service | Queries and pool | TLS, limits and leases | Benchmark |
| Redis | External Redis service | Client and pool | Limits, authentication and leases | Benchmark |
Availability
- Boost.Asio is the default dependency. Standalone Asio supports TCP, UDP, RUDP, TLS and database clients through the same callback API; HTTP and WebSocket require Boost.Beast.
- MySQL authentication and secure transports require
ARKNET_ENABLE_SSLand OpenSSL. - IPv4 and IPv6 share the endpoint API; listening policy is explicit.
- HTTP currently implements HTTP/1.1. Native UDP does not add retransmission or segmentation.
- RUDP includes ARQ-only, fixed FEC and adaptive FEC in
v0.1.0; local validation is complete. See deployment acceptance. - Single HTTP requests support completion, timeout and cancellation.
- Public coroutine endpoints, HTTP/2, HTTP/3, named pipes, Unix domain sockets, RPC, DTLS and WebSocket compression are planned.
- The database client guide covers native single-node MySQL and Redis clients, exclusive pool leases and failure handling.