A C++ library for building high-performance embedded RESTful HTTP servers.
libhttpserver is a C++ library for creating embedded, high‑performance HTTP servers with a REST‑oriented API. It wraps libmicrohttpd to provide an object‑interface for handling HTTP requests, responses, authentication, TLS, and file uploads. It solves the problem of building lightweight, compliant HTTP services in C++ without dealing with low‑level socket and protocol details.
C++ developers building embedded HTTP services, REST APIs, or lightweight web servers that require fine‑grained control over HTTP semantics, performance, and resource usage.
Developers choose libhttpserver because it offers a clean, object‑oriented C++ API on top of libmicrohttpd, full HTTP 1.1 compliance, extensive configurability (threading, TLS, authentication), and cross‑platform support—all while keeping the footprint small enough for embedded use.
C++ library for creating an embedded Rest HTTP server (and more)
Provides full HTTP 1.1 support with a compliant request parser, ensuring reliable protocol handling and interoperability with standard clients.
Supports single-thread, thread-per-connection, and thread-pool modes, allowing developers to optimize performance based on workload patterns, as detailed in the README's threading section.
Includes built-in basic and digest authentication with centralized skip rules, simplifying secure endpoint implementation without external dependencies.
Offers optional TLS via GnuTLS with features like client certificates and PSK, enabling secure communications for embedded applications.
Supports URL path parameter extraction with regex constraints, facilitating clean RESTful API design and dynamic endpoint handling.
Relies on libmicrohttpd and optionally GnuTLS, adding deployment complexity and increasing binary size compared to standalone libraries.
Requires building from source with autotools and manual dependency management, which can be error-prone and time-consuming, especially on Windows as noted in the MSYS2 instructions.
Only supports HTTP 1.1 natively, lacking built-in HTTP/2 or HTTP/3 features, which may impact performance in modern high-throughput scenarios.
Demands C++17 expertise and deep understanding of HTTP semantics, making it less accessible for developers accustomed to higher-level web frameworks.
Simple, secure & standards compliant web server for the most demanding of applications
:zap: KCP - A Fast and Reliable ARQ Protocol
A C++ header-only HTTP/HTTPS server and client library
Embedded web server, with TCP/IP network stack, MQTT and Websocket
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.