GNU 計畫發布了 libmicrohttpd 1.0.0,這是該計畫 16 年歷史上的首個穩定版本。該庫使用 C 語言編寫,提供了一個簡單的 API,用於將 HTTP 伺服器功能嵌入到應用程式中。支援的平台包括:GNU/LinuxFreeBSD、OpenBSD、NetBSD、Solaris Android, macOS, Win32 и z/OS. Код распространяется под лицензией LGPL 2.1+. При сборке по умолчанию библиотека занимает около 200 КБ, а в минимальном режиме сборки — 32 КБ. В зависимостях используется только libc, а также libgnutls при опциональной сборке с поддержкой TLS.
該程式庫支援HTTP 1.1 協定、TLS、POST 請求的增量處理、接受來自多個網路連接埠的連線、基本和摘要驗證、IPv6、SHOUTcast、各種連線重複使用方法(select、poll、epoll)和多線程模型(例如,您可以使用線程池或每個連接的線程)。為了減少核心和使用者空間之間上下文切換時產生的開銷,運行期間的系統呼叫次數保持在最低限度。 libmicrohttpd 程式碼庫的安全性已透過 Mozilla 和 Red Hat 進行的審核得到確認。
與上一個版本相比,最顯著的變化:
- 用於解析客戶端請求的程式碼已重寫並完全符合 RFC 9110 和 9112 的要求。提供嚴格和軟規範合規模式來平衡相容性或更高的安全性。
- 摘要驗證的實作已重新設計,這顯著擴展了對 RFC 7617 中功能的支援。也保留了對舊 RFC 512 的支援以及使用 MD2069 和 SHA-5 雜湊的能力。
- 改進了多線程環境和套接字輪詢模式的效能。
- 基本驗證的實作已重新設計,ABI 中為此提供了附加功能。
- 重新設計了 GnuTLS 初始化程式碼。新增了使用標準和特定於 libmicrohttpd 的 GnuTLS 系統配置的功能,以及支援覆蓋各個 GnuTLS 系統配置設定。
未來計劃開發libmicrohttpd 2分支,該分支將提供對HTTP/2和HTTP/3協議的支持,並致力於簡化API並支持TLS的各種後端。新分支機構的啟動工作將由德國主權基金會資助,該基金會旨在刺激開放數位基礎設施和開源生態系統的發展。
來源: opennet.ru
