Libmicrohttpd作為GNU專案的嵌入式HTTP web伺服器庫,2020年最終釋出。
這個輕量級的C庫提供了一個可以被其他應用程式輕鬆使用的HTTP Web伺服器,新版本的主題之一是關注更好的作業系統/核心可移植性。Libmicrohttpd的緩衝/推送程式碼已經完全重寫,具有更好的跨環境移植性。現在使用的系統呼叫數量減少了,重點關注的作業系統有FreeBSD、Windows、OpenBSD、NetBSD、Darwin/macOS和Solaris。
重寫的程式碼也帶來了更好的網路利用率和更快的響應速度。這項工作加上其他的改進,比如libmicrohttpd 0.9.72中更好的執行緒同步,應該會帶來更好的效能--開發者指出,尤其是在HTTP stay-alive和HTTPS連線的情況下。在 v0.9.72 中,各種 bug 也得到了解決。
更多關於這個新的GNU libmicrohttpd 0.9.72版本的細節請訪問GNU 專案網站。
GNU libmicrohttpd 是一個小型的 C 庫,它可以使 HTTP 伺服器作為另一個應用程式的一部分輕鬆執行。GNU Libmicrohttpd 是自由軟體,是 GNU 專案的一部分。GNU Libmicrohttpd與其他專案不同的主要特點是。
C庫:快速、小巧
API是簡單的、有表現力的和完全可重入的。
實現符合HTTP 1.1標準
HTTP伺服器可以在多個埠監聽
四種不同的執行緒模式(select、poll、pthread、執行緒池)。
支援的平臺包括GNU/Linux、FreeBSD、OpenBSD、NetBSD、Android、Darwin (macOS)、W32、OpenIndiana/Solaris和z/OS。
支援IPv6
支援SHOUTcast
支援POST資料的增量處理(可選)。
支援基本和摘要認證(可選)。
支援TLS(需要libgnutls,可選)。
二進位制只有32k左右(沒有TLS支援和其他可選功能)。
GNU Libmicrohttpd的誕生是因為作者需要一個簡單的方法來為其他專案新增一個併發的HTTP伺服器。現有的替代方案要麼是非自由的,要麼是不可逆的,要麼是獨立的,要麼是糟糕的程式碼質量,要麼是兩者的結合。如果你正在尋找一個獨立的HTTP伺服器,請不要使用GNU Libmicrohttpd,有很多其他專案已經提供了這樣的功能。但是,如果你想在你的C或C++應用程式中提供簡單的WWW頁面,可以看看它。