Skip to content
Tags give the ability to mark specific points in history as being important
  • v0.6.0
    TinyCBOR release 0.6
    
    TinyCBOR 0.6 contains many changes developed over the past four years,
    which have been included in Qt releases.
    
    Notable new API:
    - Support for encoding and decoding half-precision floating points
      (cbor_encode_float_as_half_float and cbor_value_get_half_float_as_float)
      which convert to and from a single-precision float to the correct 16-bit
      representation.
    - Ability to restart parsing (cbor_value_reparse)
    
    And some experimental API:
    - Parsing and encoding using delegated functions, not just a buffer
      (cbor_encoder_init_writer and cbor_parser_init_reader)
    - Parser support for iterating over string chunks
    
    The project maintainer would like to thank the following people for
    contributing to this release and to bugfixes in the 0.5 branch:
        Alexander Richardson
        Andreas Zisowsky
        Dan Church
        Dmitry Shachnev
        elie-elkhoury
        Fabrice Fontaine
        Hamilton Chapman
        Koen Zandberg
        Konstantin Yegupov
        Maciej Jurczak
        Mahavir Jain
        Mårten Nordheim
        Mathieu
        Michael Richardson
        Pedro Oliveira
        Ricardo Crudo
        Sergio Martins
        Shubham Patil
        Stewart Gebbie
        Svyatoslav Phirsov
    
    Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
  • v0.6-rc1
    TinyCBOR v0.6 Release Candidate 1
    
    This is a pre-release of TinyCBOR. It contains many changes developed
    over the past four years, which have been included in Qt releases.
    
    Notable new API:
    - Support for encoding and decoding half-precision floating points
      (cbor_encode_float_as_half_float and cbor_value_get_half_float_as_float)
      which convert to and from a single-precision float to the correct 16-bit
      representation.
    - Ability to restart parsing (cbor_value_reparse)
    
    And some experimental API:
    - Parsing and encoding using delegated functions, not just a buffer
      (cbor_encoder_init_writer and cbor_parser_init_reader)
    - Parser support for iterating over string chunks
  • v0.5.4
    TinyCBOR release 0.5.3
    
    This is a bugfix release. Important bugs fixed in this release:
    - Documentation clarification on the use of CborIndefiniteLength
    - Fixed a warning on discarding a const qualifier
    - Fixed a warning on checking macro values before checking they're defined
    - Fixed the indentation in the simplereader example
    - Improved the output of byte strings in the simplereader example
      to use "\x11" instead of plain hex dump
    - Made strings be printed in quotes by the simplereader example
    - Fixed the supported tag registry HTML documentation
    - Fixed building TinyCBOR with other C libraries than glibc on Linux
    - Fixed a build issue on big-endian machines
    - Fixed an issue synchronising the state of inner and outer containers
      when calling cbor_encoder_close_container
    - Fixed building of TinyCBOR with MSVC when /arch:AVX2 is used
    - Tightened memory allocation failure checks
    
    The project maintainer would like to thank the following people for
    contributing to this release:
     Alexander Richardson
     Dan Church
     Hamilton Chapman
     Maciej Jurczak
     Mahavir Jain
     Mathieu
     Michael Richardson
     Ricardo Crudo
     Shubham Patil
     Stewart Gebbie
     Svyatoslav Phirsov
    
    Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
  • v0.5.3
    TinyCBOR release 0.5.3
    
    This is a bugfix release. Important bugs fixed in this release:
    - Fixed off-by-one error in UTF-8 decoding (#137)
    - Fixed build error in json2cbor tool
    - Fixed off-by-one error causing buffer overflow in open_memstream (#140)
    - Fixed a possible macro expansion error (#141)
    - Fixed an out-of-bound access error when a stream ends in a string (#156)
    - Fixed a mistake in the documentation that suggested invalid code
    - Fixed validation of maps that have an unpaired key (#167)
    
    The project maintainer would like to thank the following people for
    contributing to this release:
     Fabrice Fontaine
     Pedro Oliveira
     Sergio Martins
     Svyatoslav Phirsov
     elie-elkhoury
    
    Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
  • v0.5.2
    TinyCBOR release 0.5.2
    
    This is a bugfix release. Important bugs fixed in this release:
    - Fixed the detection of the byte order with the INTEGRITY compiler
    - Fixed building with CBOR_NO_FLOATING_POINT and CBOR_NO_HALF_FLOAT_TYPE
    - Changed the type for all flags variables from int to uin32_t
      (for platforms where int isn't 32-bit)
    - Fixed some C89/C90 issues in the code: notably, TinyCBOR headers now
      do compile with such a compiler (provided <stdint.h> is present)
    - Fixed the freestanding (no FILE*) build
    - Made sure the shared library build of TinyCBOR links to the math library
    - #136 Fixed the installation of tinycbor-version.h header
    
    The maintainer would like to thank Koen Zandberg for contributions in this
    release.
    
    Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
  • v0.5.1
    TinyCBOR release 0.5.1
    
    This is a bugfix release. Important bugs fixed in this release:
    - Fixed a memory leak in the functions converting to JSON if fprintf failed
    - Fixed a crash in json2cbor if realloc() failed
    - Fixed a compile error on 32-bit (x86) Windows
    - Fixed the build with very old GCC (4.4)
    
    Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
  • v0.5.0
    TinyCBOR release 0.5.0
    
    TinyCBOR 0.5 contains numerous fixes and new API compared to 0.4. The
    main feature in this release is the CBOR Validation API, which can be
    used to perform a deeper validation of the contents than the simple
    syntax correctness that the main parser API provides. In particular, the
    API can be used to confirm that a given CBOR data type was encoded using
    either the Canonical Format (RFC 7049 section 3.9) and the Strict Mode
    (section 3.10). The API can also be used to confirm CBOR Text Strings
    carry properly-encoded UTF-8 text, a verification that the main parser
    does not perform.
    
    Starting in this release, the TINYCBOR_VERSION macro will be defined to
    the current version number.
    
    This release also has the possibility of building TinyCBOR as a shared
    library on Unix systems. It is automatically enabled on systems detected
    to use the ELF executable format. To disable it, pass BUILD_SHARED=0 to
    make; to enable it on other systems, pass BUILD_SHARED=1. To disable the
    static library, pass BUILD_STATIC=0 to make. Note that TinyCBOR does not
    guarantee binary compatibility across releases.
    
    Other relevant changes include:
    
     - The list of known tags includes the tags used for CBOR Object Signing
       and Encryption (COSE - RFC 8152).
     - The functions taking FILE* are now conditional on a hosted C
       environment. They are not declared for freestanding C environments.
    
    Note: the zero-copy string functions announced with the 0.5-beta1
    release have been removed for further development. A new zery-copy
    string access API will be provided in the 0.6 release.
    
    The project maintainer would like to thank the following people for
    contributing to this release:
     Bertrand Roussel
     George Nash
     Erich Keane
     Fabrice Fontaine
     Vipul Rahane
    
    Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
  • v0.5-beta1
    TinyCBOR release 0.5 (beta1)
    
    This is a beta release of TinyCBOR 0.5. Beta releases may have bugs and
    the API is still subject to change.
    
    TinyCBOR 0.5 contains numerous fixes and new API compared to 0.4. The
    main feature in this release is the CBOR Validation API, which can be
    used to perform a deeper validation of the contents than the simple
    syntax correctness that the main parser API provides. In particular, the
    API can be used to confirm that a given CBOR data type was encoded using
    either the Canonical Format (RFC 7049 section 3.9) and the Strict Mode
    (section 3.10). The API can also be used to confirm CBOR Text Strings
    carry properly-encoded UTF-8 text, a verification that the main parser
    does not perform.
    
    Starting in this release, the TINYCBOR_VERSION macro will be defined to
    the current version number.
    
    Other relevant changes include:
    
     - The list of known tags includes the tags used for CBOR Object Signing
       and Encryption (COSE - RFC 8152).
     - A new pair of functions cbor_value_get_{text,byte}_string_chunk can
       be used to obtain a direct pointer to the string data, without any
       memory allocation or memcpy (zero copy).
     - the functions taking FILE* are now conditional on a hosted C
       environment. They are not declared for freestanding C environments.
    
    The project maintainer would like to thank the following people for
    contributing to this release:
     Alex Radutskiy
     Bertrand Roussel
     Erich Keane
     Fabrice Fontaine
     Philippe Coval
     Vipul Rahane
  • v0.4.2
    TinyCBOR release 0.4.2
    
    This is a bugfix release. Important bugs fixed in this release:
     - Fixed builds against a static cJSON
     - Fixed MSVC builds
     - Fixed builds on freestanding C implementation (no FILE* API)
     - Fixed the return value of cbor_encoder_close_container when a previous OOM
       condition had been detected
     - Fixed the build in strict C89 mode (no C99 extensions)
    
    Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
  • v0.4.1
    TinyCBOR release 0.4.1
    
    This is a bug-fix release. There is no new functionality on top of
    v0.4.
    
    Bugs fixed:
     - #54 Failure to build with newest cJSON upstream
     - Stack corruption when memcpy doesn't use the same calling convention
     - Warnings with GCC -pedantic in cbor.h
     - a number of buildsystem bugs
    
    Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
  • v0.4
    TinyCBOR release 0.4
    
    This is a feature release of TinyCBOR. New API in this release:
     - cbor_encoder_get_buffer_size
     - cbor_encoder_get_extra_bytes_needed
     - cbor_value_is_half_float
     - cbor_value_is_float
     - cbor_value_is_double
    
    This release contains numerous bugfixes and simple fixes for warnings
    generated with some compilers, under certain conditions. The public API
    headers should now produce no warnings with Microsoft's compiler, even at
    level 4 warnings.
    
    Important: the anonymous union member of struct CborEncoder is no longer
    anonymous, to fix compatibility with C89 compilers. Code that accessed the
    members in that structure directly should instead use the API added for that
    purpose (cbor_encoder_get_buffer_size and cbor_encoder_get_extra_bytes_needed).
    
    Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
  • v0.3.2
    TinyCBOR release v0.3.2
    
    This is a bug-fix release. There is no new functionality on top of
    v0.3 or v0.3.1. This release fixes a build incompatibility with old GNU
    Make (< 0.4) and finally fixes stdint.h macros with Arduino.
    
    Bugs fixed:
     - #36: libtinycbor.a created as a directory on some buildsystem
    
    -- 
    Changes:
    Fabrice Fontaine (1):
          Give a name to unnamed union in CborEncoder
    
    Thiago Macieira (1):
          Fix "make distcheck" when TMPDIR isn't set
  • v0.3.1
    TinyCBOR release v0.3.1
    
    This is a bug-fix release. There is no new functionality on top of
    v0.3. This release is meant to fix the build when using a Bourne shell
    that isn't Bash.
    
    Bugs fixed:
     - #32: Build fails due to fd > 9 in shell redirection
     - #34: Use of non-POSIX "echo -e" shell
    
    --
    Changes:
    Fabrice Fontaine (1):
          Fix compilation error due to file descriptor
    
    Thiago Macieira (1):
          Use printf instead of echo -e in Makefile.configure
  • v0.2.1
    Retroactively releasing TinyCBOR 0.2.1
    
    This is an intermediate release of TinyCBOR v0.2 without the buildsystem
    updates that entered 0.3.
  • v0.3
    TinyCBOR release 0.3
    
    The major feature in version 0.3 is the completion of the TinyCBOR
    documentation. To generate it, run
        make docs
    The documentation is available online at
        https://01org.github.io/tinycbor/0.3
    
    This release contains compile fixes for builds on Windows with Microsoft
    Visual Studio's compiler. It also moved the code calling malloc() to
    outside cborparser.c, so that file can be compiled on C Freestanding
    environments that do not have malloc() and free().
    
    This release also completes the API that was declared in cbor.h but never
    implemented. New APIs in this release are:
     - cbor_encoder_get_buffer_size
     - cbor_encoder_get_extra_bytes_needed
     - cbor_value_calculate_string_length
     - cbor_value_get_int64_checked
     - cbor_value_get_int_checked
    
    --
    Changes:
    David Antler (1):
          Add reference to header file for Windows.
    
    Mike Colagrosso (1):
          parser: Set the length to 0 on error in extract_length()
    
    Otavio Pontes (3):
          Fix compilation for systems without math.h header
          Remove from cborparser.c file the dependency on stdlib header
          Fix _BSD_SOURCE is deprecated warning
    
    Thiago Macieira (17):
          Fix #16: sizeof(struct {}) is not allowed in C++
          Add missing #include
          Fix and test the functions getting the sizes of containers
          Finish open_memstream for older glibc without it
          Fix a parsing issue caused by pointer wraparounds
          Fix warnings printed by the Microsoft compiler at -W3
          Fix a few more MSVC level 3 warnings
          Fix compilation when using a C compiler that doesn't understand "inline"
          Fix compilation in C89 mode: variables can't be declared in for stmt
          Convert C++/C99 style comments to C89
          Update qmake build files
          Finish TinyCBOR documentation
          Add cbor_encoder_get_buffer_size and get_extra_bytes_needed
          Parsing: Add cbor_value_get_next_byte()
          CborValue: add missing convenience FP cbor_value_is_xxxx functions
          CborValue: fix mis-named cbor_value_is_{null,undefined}
          Parsing: implement the missing cbor_value_get_int{,64}_checked functions
  • v0.2
    6cdac8ee · Update version number ·
    TinyCBOR release 0.2
    
    The major feature in this release is the CBOR-to-JSON and JSON-to-CBOR
    conversion tools. Conversion from CBOR to JSON is done by passing the -j
    option to the existing cbordump tool, while the reverse conversion is
    done by the new json2cbor tool. Both tools accept the -M switch to
    annotate the JSON output and parse it so the orignal CBOR types are
    restored. This is specially useful for tagged objects and CBOR Byte
    Strings.
    
    A minor feature was the implementation of IEEE 754 half-float
    support. Another is the ability to check whether the number of items
    added to arrays and maps when encoding to CBOR was the expected value.
    
    And TinyCBOR got a buildsystem. So now you can simply type make && make
    install.
    
    New APIs in this release:
     - cbor_encode_negative_int
     - cbor_encode_text_stringz
     - cbor_encoder_close_container_checked
     - cbor_value_get_raw_integer
     - cbor_value_to_json_advance
     - cbor_value_to_json
    
    Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
  • v0.1
    TinyCBOR release v0.1