Выпущена GNU libmicrohttpd 1.0

IoT очень зависит от веб-технологий, но для многих приложений необходимое программное обеспечение является чрезмерным. libmicrohttp - это небольшая библиотека на Си, которая позволяет добавлять HTTP в программы на Си.

Большая проблема с Интернетом заключается в том, что он развился до такой степени, что его протоколы сложно реализовать, если приходится делать это с нуля. Только относительно недавно мы смогли выбрать достаточно мощные устройства, чтобы использовать настольную операционную систему для IoT или встраиваемых задач. Наличие операционной системы может усложнить выполнение базовых задач, требующих точной синхронизации, но наличие высокоуровневых функций, таких как файлы и графика, упрощает работу.

Есть области, в которых сложнее решить, как действовать дальше. Например, что делать IoT-программе, которая хочет открыть веб-интерфейс? Одна из возможностей - использовать полноценный веб-сервер, например Apache, но во многих случаях это не только излишество, но и риск для безопасности. Если все, что хочет сделать ваша IoT-программа, - это отправить несколько статических страниц с динамически генерируемым содержимым, то наличие полноценного веб-сервера - это кошмар, который нужно правильно настроить.

HTTP достаточно прост для реализации на собственном сервере или клиенте, но быстро становится трудно уследить за возможными заголовками, которые могут быть использованы, и все усложняется, когда вы добавляете HTPPS или что-то связанное с шифрованием. Для небольших устройств, не работающих под управлением настольных операционных систем, существуют некоторые библиотеки, обеспечивающие базовый HTTP и даже шифрование, но для настольных машин существует общее предположение, что вы можете с тем же успехом установить полноценный сервер. Если вы не хотите этого делать, то есть несколько очевидных библиотек на C, которые справятся с этой задачей. Одной из таких библиотек является libmicrohttpd, проект GNU, но до недавнего времени он выглядел немного заброшенным. Теперь у нас есть релиз версии 1.0 и обещание дальнейшей активности.

Заявленными положительными моментами релиза являются:

  • Библиотека на языке C: быстрая и маленькая
  • API прост, выразителен и полностью реентерабелен
  • Реализация совместима с HTTP 1.1
  • HTTP-сервер может прослушивать несколько портов
  • Различные потоковые режимы: запуск в потоке приложения, внутреннем потоке, пуле потоков и потоке на соединение
  • Три различных режима опроса сокетов: select(), poll() и epoll
  • Минимальное количество sys-вызовов, чтобы избежать лишних переключений режимов пользователь/ядро
  • Поддерживаемые платформы: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana/Solaris и z/OS
  • Поддержка IPv6
  • Поддержка SHOUTcast
  • Поддержка инкрементной обработки POST-данных (опционально)
  • Поддержка базовой и дайджест-аутентификации (опционально)
  • Поддержка TLS (требуется libgnutls, опционально)
  • Двоичный файл занимает всего около 32k (без поддержки TLS и других дополнительных функций)

При объеме 32 КБ он достаточно мал для использования в IoT-устройствах. Он прост в использовании, и с его помощью можно обслуживать несколько запросов в разных потоковых режимах. Если вы хотите использовать шифрование, то вам понадобится дополнительный пакет. На данный момент поддерживается только libgnutls, но, похоже, он находится в активной разработке.

Еще более приятной новостью является то, что планируется его дальнейшее развитие:

Сейчас начнется работа над второй основной версией GNU libmicrohttpd. Эта версия будет иметь более простой в использовании API, добавит поддержку HTTP2 и HTTP3, а также несколько TLS-бэкендов.

Мое единственное замечание заключается в том, что в сегодняшних условиях разделение библиотек HTTP и TLS - не самый лучший способ работы. HTTPS сейчас настолько стандартен, что нам нужно, чтобы любая HTTP-библиотека поддерживала HTTPS из коробки - не как дополнительная опция, а как опциональное отключение.

Выпущена GNU libmicrohttpd 1.0
Понравилась новость? Тогда не забудь оставить свой комментарий.
А так же, добавь наш сайт в закладки (нажми Ctrl+D), не теряй нас.
05 февраля 2024 г.
41

Комментарии

Оставить комментарий:
* отправляя форму, я даю согласие на обработку персональных данных

Читайте еще