Micro-toolkit

microcbor

Text payloads waste bytes and parsing work on constrained links.

A zero-allocation encoder/decoder implements a definite-length RFC 8949 subset.

DevelopmentMITC99
Last verified
Not audited against current README/docs
Platform scope
Portable C99; integration depends on caller-provided adapters

What it solves

Text payloads waste bytes and parsing work on constrained links.

How it works

1Values2caller buffer encoder3CBOR bytes

Use it when

Encode compact telemetry maps
Decode known typed fields
Skip unknown fields for forward compatibility

Quick Start

#include "mcbor.h"
uint8_t buf[64]; mcbor_enc_t e; size_t used=0;
mcbor_enc_init(&e,buf,sizeof buf);
mcbor_enc_map(&e,1); mcbor_enc_str(&e,"ok"); mcbor_enc_bool(&e,true);
mcbor_enc_size(&e,&used);
/* Expected: used reports a compact definite-length CBOR map. */

Engineering evidence

  • README documents zero allocation and the exact implemented subset

Known limits

  • No 64-bit integers, indefinite items or tags
  • Implements a subset, not all RFC 8949 features