Перший стабільний випуск бібліотеки GNU libmicrohttpd

Проект GNU опублікував випуск бібліотеки libmicrohttpd 1.0.0, який був відзначений як перший стабільний реліз за 16 років існування проекту. Бібліотека написана мовою Сі та представляє простий API для вбудовування функціональності HTTP-сервера у додатки. Серед підтримуваних платформ: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 та z/OS. Код розповсюджується під ліцензією LGPL 2.1+. За замовчуванням бібліотека займає близько 200 КБ, а в мінімальному режимі складання — 32 КБ. У залежностях використовується лише libc, а також libgnutls при опціональній збірці з підтримкою TLS.

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

Найбільш помітні зміни порівняно з минулим випуском:

  • Переписано та приведено до повної відповідності вимогам RFC 9110 та 9112 код для розбору запитів клієнтів. Наведено режими суворого та м'якого дотримання специфікацій для балансування між сумісністю або вищою безпекою.
  • Перероблено реалізацію digest-аутентифікації, в якій значно розширена підтримка можливостей, присутніх у RFC 7617. У тому числі забезпечена підтримка SHA-512, userhash і username у розширеній нотації. Також збережена підтримка старого RFC 2069 та можливість використання хешів MD5 та SHA-256.
  • Поліпшено роботу в багатопотокових оточеннях та при режимах полінгу сокетів.
  • Перероблено реалізацію basic-автентифікації, для якої в ABI запропоновано додаткові функції.
  • Перероблений код для ініціалізації GnuTLS. Додано можливість використання як типової, так і специфічної для libmicrohttpd системної конфігурації GnuTLS, а також підтримка перевизначення окремих налаштувань системної конфігурації GnuTLS.

Надалі планується зайнятися розробкою гілки libmicrohttpd 2, в якій буде забезпечена підтримка протоколів HTTP/2 та HTTP/3, а також проведена робота зі спрощення API та підтримки різних бекендів для TLS. Початок роботи над новою гілкою буде профінансовано фондом Sovereign, започаткованим у Німеччині для стимулювання розвитку відкритої цифрової інфраструктури та екосистем з відкритим вихідним кодом.

Джерело: opennet.ru

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster