The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск библиотеки GNU libmicrohttpd 0.9.77

29.05.2023 09:43

Проект GNU опубликовал выпуск библиотеки libmicrohttpd 0.9.77, представляющей простой API для встраивания функциональности HTTP-сервера в приложения. Среди поддерживаемых платформ: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 и z/OS. Библиотека распространяется под лицензией LGPL 2.1+. В собранном виде библиотека занимает около 32 КБ.

Библиотека поддерживает протокол HTTP 1.1, TLS, инкрементальную обработку POST-запросов, basic- и digest-аутентификацию, IPv6, SHOUTcast, различные методы мультиплексирования соединений (select, poll, epoll) и модели многопоточности (например, можно использовать пул потоков или поток на соединение). Для снижения накладных расходов, возникающих при переключении контекста между ядром и пространством пользователя, число системных вызовов в процессе работы сведено к минимуму.

Наиболее заметные изменения:

  • В API предложена новая функция MHD_get_version_bin() для получения информации о версии библиотеки в упакованном формате (например, 0x00097701).
  • К форме, рекомендуемой в RFC, приведены идентификаторы алгоритмов, используемых для digest-аутентификации ("MD5" / "SHA-256" вместо "md5" / "sha-256").
  • Переписан код декодирования блоков в формате Base64, усилена проверка корректности входных данных в формате Base64.
  • Улучшена настройка кросс-компиляции, повышена совместимость с POSIX и новыми версиями компиляторов.
  • Добавлены внутренние тесты для проверки декодирования Base64, Basic Auth и свёрнутых длинных HTTP-заголовов.
  • В тестах задействован обновлённый API библиотеки libcurl для скрытия предупреждений об использовании устаревших вызовов.
  • Добавлена возможность использования компиляторов VC (Visual C) при сборке для систем ARM и ARM64.
  • Любые отрицательные значения, возвращаемые callback-вызовом, теперь трактуются как ошибки (ранее отрицательные значения, за исключением предопределённых кодов ошибок, могли привести к неопределённому поведению).
  • Добавлена обработка макроса препроцессора "DEBUG" (обработчик идентичен макросу "_DEBUG").
  • Исправлены накопившиеся ошибки.


  1. Главная ссылка к новости (https://www.mail-archive.com/i...)
  2. OpenNews: Подведены итоги аудита кода библиотеки GNU libmicrohttpd
  3. OpenNews: Выпуск библиотеки GNU libmicrohttpd 0.9.74
  4. OpenNews: Протокол HTTP/3.0 получил статус предложенного стандарта
  5. OpenNews: Представлен HTTP-сервер hinsightd, использующий Linux-подсистему io_uring
  6. OpenNews: Уязвимость в приложениях на базе HTTP-библиотеки Hyper
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59211-libmicrohttpd
Ключевые слова: libmicrohttpd, http
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (13) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.9, Аноним (9), 16:46, 29/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Вот бы еще чего-то вроде RPC простенькое что бы делать микросервисы на ней.
     
     
  • 2.10, Аноним (10), 17:07, 29/05/2023 [^] [^^] [^^^] [ответить]  
  • –5 +/
    RPC довольно бестолковый концепт в разрезе микросервисов и сетевых соединений. Если ты всё равно через IP соединяешься, зачем тебе RPC? Всё равно придётся дизайнить API с учётом сетевых взаимодействий. Если так уж претит RESTful API, возьми ZeroMQ, там хоть большую часть работы за тебя уже сделали и на имеющихся примитивах можно что угодно реализовать.
     
     
  • 3.12, Вы забыли заполнить поле Name (?), 18:13, 29/05/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > RPC довольно бестолковый концепт
    > Если так уж претит RESTful API

    Как бы тут нет связи

     
     
  • 4.13, Аноним (10), 18:52, 29/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Действительно, какая может быть связь между Action-oriented и Resource-oriented интерфейсами? Это совершенно разные концепции.
     
  • 3.23, Аноним (23), 00:50, 01/06/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А вы видели хоть раз полноценные RESTful API? С HATEOAS?

    Я видел 1 раз в жизни, и это был титанический труд разработчиков.

    А то, что в народе называют rest - так это по сути обычный rpc вида post /namespace/class/method, только с добавленными на пустом месте проблемами, когда вместо простого в rpc действия типа approveByModerator разгребаешь пачкой if-ов мешок флагов.

     
  • 2.16, Аноним (-), 03:06, 30/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот бы еще чего-то вроде RPC простенькое что бы делать микросервисы на ней.

    На этой штуке у энного числа программ как раз и сделан RPC. По-моему у биткоина или кого-то из майнеров вот именно он используется. Можно скормить гитхабу название либы и RPC в поиск, получить эн вариантов как оно делается. Ну и скопипастить то что понравится.

     
  • 2.18, User (??), 11:43, 30/05/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, с XML-RPC "простенькое" скорее всего не получится - но чем вам gRPC например не мил?
     
     
  • 3.19, Аноним (19), 13:22, 30/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Как будто с googleRPC будет проще, чем с проверенным, прозрачным XML-RPC. А для любителей посуше есть JSON-RPC, его используют в Bitcoin.
     
     
  • 4.20, User (??), 11:42, 31/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, наавтогенерить кода на всяких-разных язычках под gRPC кмк существенно проще, да и производительность у gRPC прям сильно выше - а отсюда и инфра проще.
     
     
  • 5.21, Аноним (21), 13:12, 31/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Генерация кода это не очень хорошо как правило, уж лучше хорошая либа.
     
     
  • 6.22, User (??), 15:32, 31/05/2023 [^] [^^] [^^^] [ответить]  
  • +/
    "Мы таки покупаем или продаем?!"(Ц)
     

  • 1.17, Аноним (17), 04:08, 30/05/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сборка тестов с ASAN у них есть?
     
     
  • 2.24, Dmitry (??), 02:50, 13/03/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да sanitize поддерживается.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру