RUDP provides reliable, ordered messages over UDP. Its C++20 ARQ core handles fragmentation, acknowledgements, retransmission and receive ordering. The public client, server and session use arknet’s CRTP and component architecture.
Get started
- Create a server: receive and echo complete messages.
- Create a client: complete the handshake and verify an echo.
- Configuration: MTU, windows, limits and compatibility.
- FEC policies: coding parameters, adaptive thresholds and statistics.
- Performance: local measurements and reproduction.
| Capability | Behavior |
|---|---|
| Endpoints | rudp_client, rudp_server, rudp_session and CRTP variants |
| Addresses and dependency | IPv4/IPv6; Standalone Asio or Boost.Asio |
| Messages | Empty and binary messages; fragmentation and ordered reassembly |
| Reliability | ACKs, timeout and fast retransmission, bounded retries |
| Optional recovery | Fixed or adaptive Reed–Solomon FEC, with ARQ retransmission fallback |
| Flow control | Send/receive windows and congestion control enabled by default |
| Runtime | Handshake timeout, reconnect, timers, owned or external IO contexts |
| Limits | Bounds on ARQ, FEC, socket queues and server session admission |
Choosing a transport
Use native UDP for independent datagrams whose loss and order the application already handles. Use RUDP for reliable message delivery over UDP. Retransmission adds latency; ordered delivery waits for missing fragments. TCP remains the standard choice for reliable byte streams.
RUDP uses KCP-compatible message-mode segments and a separate SYN/ACK/FIN connection envelope. This does not make it interchangeable with a bare KCP endpoint. It does not provide authentication, encryption, NAT traversal, stream mode or automatic path-MTU discovery. See compatibility.
A send completion confirms admission into the reliable queue, not a peer ACK or application receipt. Disconnecting does not replay unacknowledged messages into a new conversation. Applications that require receipt confirmation or replay must define that behavior in their own protocol.