Home | History | Annotate | Download | only in cn-cbor
      1 [![Build Status](https://travis-ci.org/cabo/cn-cbor.png?branch=master)](https://travis-ci.org/cabo/cn-cbor)
      2 
      3 # cn-cbor: A constrained node implementation of CBOR in C
      4 
      5 This is a constrained node implementation of [CBOR](http://cbor.io) in
      6 C that I threw together in 2013, before the publication of
      7 [RFC 7049](http://tools.ietf.org/html/rfc7049), to validate certain
      8 implementability considerations.
      9 
     10 Its API model was inspired by
     11 [nxjson](https://bitbucket.org/yarosla/nxjson).  It turns out that
     12 this API model actually works even better with the advantages of the
     13 CBOR format.
     14 
     15 This code has been used in a number of research implementations on
     16 constrained nodes, with resulting code sizes appreciably under 1 KiB
     17 on ARM platforms.
     18 
     19 I always meant to improve the interface some more with certain API
     20 changes, in order to get even closer to 0.5 KiB, but I ran out of
     21 time.  So here it is.  If I do get around to making these changes, the
     22 API will indeed change a bit, so please be forewarned.
     23 
     24 ## Building
     25 
     26 There is a `Simple-Makefile` for playing around, as well as a complete
     27 [`cmake`](http://www.cmake.org)-based build environment.
     28 (You can choose what fits your needs better.)
     29 
     30 Building with `cmake`:
     31 
     32     ./build.sh
     33 
     34 Building including testing:
     35 
     36     ./build.sh all test
     37 
     38 Generating a test coverage report (requires lcov[^1]; result in `build/lcov/index.html`):
     39 
     40     ./build.sh all coveralls coverage_report
     41 
     42 License: MIT
     43 
     44 [^1]: Installation with homebrew: `brew install lcov`
     45