Skip to content
OpenArkStudioPublic

About

C++20 header-only networking: TCP, UDP, RUDP, HTTP, WebSocket, TLS, MySQL and Redis.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

English · 简体中文

ArkNet

A C++20 header-only networking library.

Connect applications. Exchange messages. Access databases.

Merge queue checks C++20 BSL-1.0

Get started →   ·   Documentation   ·   Examples   ·   Roadmap


Features

  • 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.

Get started

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 Release

Standalone 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


BSL-1.0 · Third-party notices · OpenArkStudio

About

C++20 header-only networking: TCP, UDP, RUDP, HTTP, WebSocket, TLS, MySQL and Redis.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages