keel-http is a lightweight, zero-STL-header C++20 HTTP/HTTPS and WebSocket client library built on top of keel and licensed under 0BSD.
- Featherweight Public Header (
keel/http.h): Transitively includes only<cstddef>,<cstdint>, and<new>(verified bytest_header_purity), keeping compile times minimal. - Native OS Backends (Zero Heavy Dependencies on Windows & WebAssembly):
- Windows: Native
WinHTTP(winhttp.dll) with TLS 1.2/1.3, HTTP/2, andWinHttpWebSocket*. - Linux / macOS:
libcurl(CURL::libcurl) with connection pooling. - WebAssembly (Emscripten): Browser
emscripten_fetchandemscripten_websocket.
- Windows: Native
- First-Class
keelTypes: Useskeel::String,keel::StringRef,keel::FixedString,keel::Array<u8>, andkeel::SmallArray<HttpHeader, 8>(zero heap allocations for typical header lists), while interoperating seamlessly withstd::string_viewandstd::spanat API boundaries. - RFC 3986 URL Parser: Supports
http,https,ws, andwssschemes, IPv4, IPv6 ([::1]), ports, and query strings. - Testable Interfaces: Provides
IHttpClientandIWebSocketClientinterfaces for deterministic mocking in unit tests.
cmake -B build
cmake --build build
ctest --test-dir build -C Debug --output-on-failureZero-Clause BSD (0BSD).