Repolode
yhirose

yhirose/cpp-httplib

Однофайловая библиотека на C++11 для создания HTTP/HTTPS-серверов и клиентов с блокирующим вводом-выводом через сокеты.

Звёзды
16,923
Форки
2,777
Открытые issues
0
Последний коммит
16 часов назад

Что это?

cpp-httplib — кроссплатформенная библиотека на C++11, предоставляющая HTTP/HTTPS-сервер и клиент. Она состоит из одного заголовочного файла httplib.h, поэтому для добавления библиотеки в проект достаточно включить этот файл. Библиотека использует блокирующий ввод-вывод через сокеты и поддерживает только HTTP/1.1; HTTP/2 и HTTP/3 не реализованы.

Библиотека поддерживает маршрутизацию с параметрами пути и регулярными выражениями, раздачу статических файлов с сопоставлением MIME-типов, загрузку файлов и multipart-форм, потоковую передачу данных и передачу чанками, keep-alive-соединения, а также хуки в стиле middleware: обработчики до и после маршрутизации и обработчики исключений. Server-Sent Events и WebSocket описаны как дополнительные возможности.

TLS доступен через OpenSSL (версии 3.0 или новее), Mbed TLS или wolfSSL — выбор задаётся директивой компиляции. Также предусмотрены настройки проверки сертификатов, взаимная TLS-аутентификация и интеграция с системным хранилищем сертификатов в macOS и Windows.

Ключевые возможности

  • 01Подключение одним заголовочным файлом, без зависимостей при сборке для базового использования HTTP
  • 02HTTP-сервер и клиент в одной библиотеке
  • 03HTTPS через OpenSSL, Mbed TLS или wolfSSL
  • 04Маршрутизация с параметрами пути и регулярными выражениями
  • 05Раздача статических файлов, multipart-загрузка и чанковые или потоковые ответы
  • 06Взаимная TLS-аутентификация и настройки проверки сертификатов

Сценарии использования

  • Добавление лёгкой встроенной HTTP-точки доступа в приложение на C++ без подключения тяжёлого фреймворка
  • Создание C++-клиента для вызова REST API по HTTPS
  • Раздача статических файлов или простых веб-API из инструмента на C++
  • Быстрое прототипирование локального HTTP-сервиса в проекте на C++ с минимальной настройкой

Быстрый старт

  1. 1

    Скачайте файл httplib.h из репозитория

  2. 2

    Подключите httplib.h в коде C++ и соберите сервер или клиент, как показано в примерах

Что важно знать

  • Используется блокирующий ввод-вывод через сокеты, поэтому библиотека не подходит для неблокирующих решений.
  • Поддерживается только HTTP/1.1; HTTP/2 и HTTP/3 не реализованы.
  • 32-разрядные платформы не поддерживаются и не проходят проверку безопасности.

Темы

Частые вопросы

Что такое cpp-httplib?
Однофайловая библиотека на C++11 для создания HTTP/HTTPS-серверов и клиентов с блокирующим вводом-выводом через сокеты. cpp-httplib — кроссплатформенная библиотека на C++11, предоставляющая HTTP/HTTPS-сервер и клиент. Она состоит из одного заголовочного файла httplib.h, поэтому для добавления библиотеки в проект достаточно включить этот файл. Библиотека использует блокирующий ввод-вывод через сокеты и поддерживает только HTTP/1.1; HTTP/2 и HTTP/3 не реализованы.
cpp-httplib можно использовать бесплатно? Какая у него лицензия?
cpp-httplib распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
cpp-httplib всё ещё поддерживается?
Активно поддерживается. Последний коммит в cpp-httplib — 22 окт. 2026 г..
Для чего можно использовать cpp-httplib?
Добавление лёгкой встроенной HTTP-точки доступа в приложение на C++ без подключения тяжёлого фреймворка Создание C++-клиента для вызова REST API по HTTPS Раздача статических файлов или простых веб-API из инструмента на C++ Быстрое прототипирование локального HTTP-сервиса в проекте на C++ с минимальной настройкой
Как установить cpp-httplib?
Скачайте файл httplib.h из репозитория Подключите httplib.h в коде C++ и соберите сервер или клиент, как показано в примерах
Где скачать cpp-httplib?
Исходный код и инструкции по установке — на GitHub: https://github.com/yhirose/cpp-httplib

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты