mini-https
Описание
mini-https - самодостаточный мини HTTPS-сервер на языке C/CPP, построенный на библиотеке crypery HTTPS Library. Не требует OpenSSL и других внешних зависимостей: TLS-стек, HTTPS-сервер и все утилиты собраны в одном проекте.
Сервер принимает HTTP/1.1-запросы по TCP или TLS (HTTPS), обслуживает статические файлы из каталога www/, предоставляет JSON API, WebSocket и Server-Sent Events, принимает загрузку файлов (multipart) и работает с пулом рабочих потоков. Вся конфигурация задаётся в config.json; при первом запуске файл создаётся автоматически со значениями по умолчанию.
Используемые модули
- crypery - HTTPS-библиотека: HTTP/1.1-сервер (роутинг, статика, gzip, WebSocket, SSE, multipart), TLS/SSL-стек (рукопожатие, шифрование, сертификаты) и HTTP/HTTPS-клиент
- utilery - утилиты: JSON-парсер, модуль логирования, загрузка конфигурации, UTF-8-кодек и регулярные выражения
- zlib - сжатие/разжатие gzip для HTTP-ответов
- compat.h - слой переносимости: сокеты, потоки и примитивы синхронизации для Windows и POSIX
Технологии
- C/CPP, библиотека crypery HTTPS Library (встроенный TLS 1.2/1.3 стек)
- utilery (JSON-парсер, логирование, конфигурация, UTF-8-кодек, регулярные выражения), zlib (gzip), compat.h (слой переносимости)
- Windows (Winsock) и POSIX (Berkeley sockets + pthreads)
- Компилятор GCC (MinGW-w64 для Windows)