DeterministicESPAsyncWebServer v6.27.1
Zero-allocation, bounded-execution async HTTP server for ESP32
Loading...
Searching...
No Matches
msgpack.h File Reference

Layer 6 (Presentation) - zero-heap MessagePack encoder and decoder. More...

#include "ServerConfig.h"
#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Detailed Description

Layer 6 (Presentation) - zero-heap MessagePack encoder and decoder.

A streaming encoder that writes directly into a caller-provided buffer (no heap), the MessagePack-format sibling of the CBOR / JSON writers. Each value is emitted in the shortest MessagePack form (fixint / fixstr / fixarray / fixmap where possible). Emit definite-length arrays and maps by writing the header (msgpack_array / msgpack_map with the item count) then that many items (twice that for a map: key, value, key, value, ...).

Overflow is tracked, not crashed on: writes past the buffer set the overflow flag and stop, while msgpack_len() keeps counting the bytes the full payload would need, so a caller can size the buffer and check msgpack_ok().

The decoder is a cursor: msgpack_peek() reports the next object's type and the msgpack_read_* calls consume it (strings and binary point into the source buffer, no copy). Any malformed or out-of-bounds read sets a sticky error - check msgpack_reader_ok(). ext and the unused 0xc1 byte are reported as INVALID.

Author
Douglas Quigg (dstroy0)
Date
2026

Definition in file msgpack.h.