Skip to content
keelcppPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

keel-http (keel::http)

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.

Features

  • Featherweight Public Header (keel/http.h): Transitively includes only <cstddef>, <cstdint>, and <new> (verified by test_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, and WinHttpWebSocket*.
    • Linux / macOS: libcurl (CURL::libcurl) with connection pooling.
    • WebAssembly (Emscripten): Browser emscripten_fetch and emscripten_websocket.
  • First-Class keel Types: Uses keel::String, keel::StringRef, keel::FixedString, keel::Array<u8>, and keel::SmallArray<HttpHeader, 8> (zero heap allocations for typical header lists), while interoperating seamlessly with std::string_view and std::span at API boundaries.
  • RFC 3986 URL Parser: Supports http, https, ws, and wss schemes, IPv4, IPv6 ([::1]), ports, and query strings.
  • Testable Interfaces: Provides IHttpClient and IWebSocketClient interfaces for deterministic mocking in unit tests.

Building & Running Tests

cmake -B build
cmake --build build
ctest --test-dir build -C Debug --output-on-failure

License

Zero-Clause BSD (0BSD).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages