libcbor
Documentation for version 0.10.2, updated on Nov 25, 2023.
Overview
libcbor is a C library for parsing and generating CBOR, the general-purpose schema-less binary data format.
- Main features
Complete IETF RFC 8949 (STD 94) conformance [1]
Robust C99 implementation
Layered architecture offers both control and convenience
Flexible memory management
No shared global state - threading friendly [2]
Proper handling of UTF-8
Full support for streams & incremental processing
Extensive documentation and test suite
No runtime dependencies, small footprint
Contents
- Getting started
- Usage & preliminaries
- API
- Types of items
- Memory management and reference counting
- Decoding
- Encoding
- Streaming Decoding
cbor_stream_decode()
cbor_callbacks
uint8
uint16
uint32
uint64
negint64
negint32
negint16
negint8
byte_string_start
byte_string
string
string_start
indef_array_start
array_start
indef_map_start
map_start
tag
float2
float4
float8
undefined
null
boolean
indef_break
cbor_empty_callbacks
- Callback types definition
- Streaming Encoding
cbor_encode_uint8()
cbor_encode_uint16()
cbor_encode_uint32()
cbor_encode_uint64()
cbor_encode_uint()
cbor_encode_negint8()
cbor_encode_negint16()
cbor_encode_negint32()
cbor_encode_negint64()
cbor_encode_negint()
cbor_encode_bytestring_start()
cbor_encode_indef_bytestring_start()
cbor_encode_string_start()
cbor_encode_indef_string_start()
cbor_encode_array_start()
cbor_encode_indef_array_start()
cbor_encode_map_start()
cbor_encode_indef_map_start()
cbor_encode_tag()
cbor_encode_bool()
cbor_encode_null()
cbor_encode_undef()
cbor_encode_half()
cbor_encode_single()
cbor_encode_double()
cbor_encode_break()
cbor_encode_ctrl()
- Types 0 & 1 – Positive and negative integers
- Type 2 – Byte strings
- Type 3 – UTF-8 strings
- Type 4 – Arrays
- Type 5 – Maps
- Type 6 – Semantic tags
- Type 7 – Floats & control tokens
- Tests
- IETF standard conformance
- Internal mechanics
- Changelog
- Development