English · 简体中文
Connect applications. Exchange messages. Access databases.
Get started → · Documentation · Examples · Roadmap
- Networking: TCP, UDP, HTTP/1 routing and WebSocket, with IPv4/IPv6 and optional TLS/mTLS.
- Reliable UDP: RUDP with KCP-compatible messages and optional fixed or adaptive Reed–Solomon FEC.
- Database clients: native single-node MySQL and Redis with connection pools.
- Composition: CRTP, reusable components and custom sessions, with transport reconnect, timers, bounded sends and external IO contexts.
Requires a C++20 toolchain and CMake 3.21+, with Boost 1.90+ (Asio and Beast) by default. MySQL authentication and secure transports require OpenSSL 1.1.1+ and ARKNET_ENABLE_SSL=ON.
With dependencies installed, build and test from the repository root:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DARKNET_ENABLE_SSL=ON
cmake --build build --config Release --parallel 3
cmake --build build --target arknet_check --config ReleaseStandalone Asio 1.38+ is available with ARKNET_USE_BOOST_ASIO=OFF; HTTP and WebSocket require Boost. Plain Redis does not require OpenSSL.
To use arknet in your application, link to the header-only CMake interface target arknet::arknet. See installation and the first client and server.
Protocol guides · Performance reports · Release notes