Проект GNU опубликовал выпуск библиотеки libmicrohttpd 0.9.74, представляющей простой API для встраивания функциональности HTTP-сервера в приложения. Библиотека поддерживает протокол HTTP 1.1, TLS, инкрементальную обработку POST-запросов, basic- и digest-аутентификацию, IPv6, SHOUTcast и различные методы мультиплексирования соединений (select, poll, pthread, thread pool). Среди поддерживаемых платформ: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian и z/OS. Библиотека распространяется под лицензией LGPL 2.1+.
В новой версии:
- Добавлена экспериментальная реализация протокола WebSockets, которая пока недостаточно хорошо протестирована и отключена по умолчанию.
- Улучшено соответствие спецификациям реализаций протоколов HTTP 1.0/1.1.
- Переделан код для декодирования chunked-запросов.
- Полностью переписан код формирования HTTP-заголовков при ответе.
- Добавлен код для автоматического возвращения ошибок, связанных с некорректными chunked-запросами, слишком большим размером данных и неверным выставлением заголовка Content-Length.
- Точность задания таймаутов повышена с секунд до миллисекунд.
- Проведены внутренние оптимизации, например, улучшено управление памятью, повышена эффективность хэширования и исключён повторяющийся разбор версии протокола и метода HTTP.
- Обеспечена более строгая проверка корректности значений HTTP-заголовков, разрешено использование символа табуляции в значениях заголовков ответа, но запрещено использование пробела в значениях пользовательских заголовков.
- Добавлена сборочная опция ‘–enable-sanitizers[=address,undefined,leak,user-poison]’ для выборочного включения режимов выявления проблем в коде.
- Добавлен файл проекта для сборки в MSVC.
Release.
Ссылка here.