Socknet — это кросс-платформенный асинхронный менеджер сетевых соединений на C++17
с поддержкой кастомных заголовков, аргументов и параметров.
Использует:
- Поддержка TCP и (опционально) WebSocket (
BUILD_WITH_WEBSOCKET) - Гибкая настройка соединений: кастомные заголовки, аргументы и параметры
- Асинхронная модель (Boost.Asio)
- Работает на Linux, Windows, macOS
- Логирование через
spdlogс уровнями:trace,debug,info,warn,error - Unit-тесты (Boost.Test) + мокинг сетевых вызовов
-
Клонировать репозиторий:
git clone https://github.com/terax1s/Socknet.git cd Socknet -
Установить зависимости:
- Boost (
system,asio,unit_test_framework) - nlohmann/json
- spdlog
- CMake ≥ 3.20
Рекомендуется использовать vcpkg:
vcpkg install boost-system boost-asio boost-test nlohmann-json spdlog
- Boost (
-
Сборка:
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="path/to/vcpkg.cmake" -DBUILD_WITH_WEBSOCKET=ON -DBUILD_TESTS=ON -DENABLE_LOGGING=ON cmake --build build
| Флаг | По умолчанию | Описание |
|---|---|---|
BUILD_WITH_WEBSOCKET |
OFF | Поддержка WebSocket (Boost.Beast) |
BUILD_TESTS |
ON | Сборка unit-тестов |
ENABLE_LOGGING |
ON | Логирование через spdlog |
cd build
ctest#include "socknet/core/socket_manager.hpp"
using namespace socknet;
int main() {
socket_manager mgr;
custom_headers_map headers { {"protocol", "tcp"} };
mgr.connect("google.com", 80, headers);
mgr.send("Hello", {});
auto resp = mgr.receive(3000, {});
mgr.disconnect();
}