Skip to content

Configuration and optional modules

HttpServerConfig centralizes listener, protocol, transport, and runtime behavior. It uses fluent with...() setters so a configuration can be assembled before the server takes ownership of it.

Build-time feature gates

Enable only the modules your application uses. The most common CMake options are:

Option Enables
AERONET_ENABLE_OPENSSL TLS and HTTPS support
AERONET_ENABLE_HTTP2 HTTP/2, HPACK, ALPN, and h2c support
AERONET_ENABLE_WEBSOCKET WebSocket endpoints
AERONET_ENABLE_ASYNC_HANDLERS Coroutine handler APIs
AERONET_ENABLE_ZLIB, AERONET_ENABLE_ZSTD, AERONET_ENABLE_BROTLI Compression codecs
AERONET_ENABLE_OPENTELEMETRY OpenTelemetry instrumentation
AERONET_ENABLE_GLAZE JSON serialization helpers

The complete option list, defaults, and platform notes are in Installation and build.

Runtime configuration

Create the server from a fully configured HttpServerConfig and Router. Some fields are fixed once a listener exists, while operational limits, timeouts, compression, headers, and TLS settings have documented update behavior.

Use the feature reference as the source of truth for each module's settings. In particular, check the relevant section before changing TLS, HTTP/2 flow-control, compression, static-file, or observability configuration in production.

Public headers

Applications normally include the public umbrella headers exposed by the installed package. The repository's aeronet/aeronet.hpp and aeronet/aeronet-server.hpp headers show the available API surface.