CivetWeb API Reference

Embedded C/C++ web server


CivetWeb API Reference

CivetWeb is often used as HTTP and HTTPS library inside a larger application. A C API is available to integrate the CivetWeb functionality in a larger codebase. This document describes the public C API. Basic usage examples of the API can be found in Embedding.md, as well as in the examples directory.

A C++ wrapper for some basic features is also available. Note that only a small subset of the functionality available through the C API can be accessed using this C++ wrapper. The C++ wrapper is not unit tested, and there is no C++ API documentation equivalent to this C API documentation.

Macros

Macro Description
CIVETWEB_VERSION The current version of the software as a string with the major and minor version number separated with a dot. For version 1.9, this string will have the value “1.9”, for the first patch of this version “1.9.1”.
CIVETWEB_VERSION_MAJOR The current major version as number, e.g., (1) for version 1.9.
CIVETWEB_VERSION_MINOR The current minor version as number, e.g., (9) for version 1.9.
CIVETWEB_VERSION_PATCH The current patch version as number, e.g., (0) for version 1.9 or (1) for version 1.9.1.

Handles

  • struct mg_context * Handle for one instance of the HTTP(S) server. All functions using const struct mg_context * as an argument do not modify a running server instance, but just query information. Functions using a non-const struct mg_context * as an argument may modify a server instance (e.g., register a new URI, stop the server, …).

  • struct mg_connection * Handle for one individual client-server connection. Functions working with const struct mg_connection * operate on data already known to the server without reading data from or sending data to the client. Callbacks using a const struct mg_connection * argument are supposed to not call functions from the mg_read() and mg_write() family. To support a correct application, reading and writing functions require a non-const struct mg_connection * connection handle.

The content of both structures is not defined in the interface - they are only used as opaque pointers (handles).

Structures

Library API Functions

Server API Functions

Client API Functions

Common API Functions

Diagnosis Functions

Deprecated / removed: