CBOR-lite --------- CBOR-lite is C++ "header only" encoder/decoder implementation for the [Concise Binary Object Representation]( (CBOR) available under a permissive [open source license](./ CBOR is specified in [RFC 7049]( CBOR-lite is intended to support procedural encoding/decoding of application protocols using CBOR as their protocol data unit format. CBOR-lite encoders are designed for applications requiring Canonical CBOR as described in [Section 3.9 of RFC 7049]( The CBOR-lite API and its implementation is not yet mature. While it is believed to be mostly correct, it has not stood the test of time. CBOR-lite is designed for use with Modern C++ (C++14 or later). CBOR-lite has no external dependencies other than the C++ Standard Library. The following aspects of CBOR are supported: * Unsigned Integer (major type 0) * Negative Integer (major type 1) * Integer (major type 0 or 1 depending on signbit) * Byte String (major type 2) * Text String (major type 3) (without UTF-8 checking) * Array of Data Items (major type 4) * Map of Data Items (major type 5) * Semantic Tagging (major type 6), namely Encoded CBOR data item (Tag 24) * True/False (major type 7, value 20 and 21) * Single- and Double-precision float point numbers (major type 7, value 26 and 27) CBOR-lite supports rejection of non-minimal encodings of types 0 through 3. Other aspects of Canonical CBOR, as well as Strict Mode, are left to the application to implement. The following aspects of CBOR are not supported: * Half-precision float point numbers (major type 7, value types 24) * Indefinite-length encodings CBOR-lite is not intended to be a generic decoder as described in [Section 3.2 of RFC 7049]( CBOR-lite is open-source. Community contributions are welcomed. See [contributing guidelines]( for more information. More information about CBOR-lite is available at []( See [](./ for [copyright and other legal notices](./