Nondeterministic Polynomial Munchies
    Have ideas to improve npm?Join in the discussion! »

    cbor-sync

    1.0.4 • Public • Published

    Encode/decode CBOR

    Build Status NPM version

    This package provides an extensible CBOR encoder/decoder.

    Usage

    var CBOR = require('cbor-sync');
     
    var encodedBuffer = CBOR.encode({hello: 'world'});
    var decodedObject = CBOR.decode(encodedBuffer);

    toCBOR()

    Much like the toJSON() method, which allows objects to provide a replacement representation for encoding, this package checks for a toCBOR() method.

    Note that this step happens after any semantic-tagging/-replacement step, so a custom semantic encoder will always override an objects built-in toCBOR() method.

    Semantic extensions

    CBOR provides a limited set of basic types (similar to JSON), but provides semantic tagging (optional for both encoder/decoder) that lets you annotate parts of the data so they can be decoded appropriately.

    Here is an example (from this module) for encoding Date objects as ISO strings:

    // 0 is the CBOR semantic tag number for date/time strings: https://tools.ietf.org/html/rfc7049#section-2.4
    CBOR.addSemanticEncode(0, function (data) {
        if (data instanceof Date) {
            return data.toISOString();
        }
    });
    CBOR.addSemanticDecode(0, function (dateString) {
        return new Date(dateString);
    });

    Known issues

    • All floats encoded as 64-bit, regardless of whether they strictly need to be

    Keywords

    Install

    npm i cbor-sync

    DownloadsWeekly Downloads

    64,927

    Version

    1.0.4

    License

    MIT

    Unpacked Size

    34.8 kB

    Total Files

    18

    Last publish

    Collaborators

    • avatar
    • avatar