fast-cbor

Encode and parse data in the Concise Binary Object Representation (CBOR) data format (RFC7049).

Usage no npm install needed!

<script type="module">
  import fastCbor from 'https://cdn.skypack.dev/fast-cbor';
</script>

README

fast-cbor

Coverage Status Dependency Status Travis CI Circle CI

Encode and parse data in the Concise Binary Object Representation (CBOR) data format (RFC7049) as fast as possible.

About

This library is a fork of the awesome [node-cbor](standard-readme compliant ). It borrows a lot of the interface, but drops all streaming and async processing in favor of a minimal syn api and being as fast as possible.

Installation

$ npm install --save fast-cbor

Benchmarks

TODO

Example

const cbor = require('cbor')
const assert = require('assert')

const encoded = cbor.encode(true) // returns <Buffer f5>
const decoded = cbor.decodeFirst(encoded)
// decoded is the unpacked object
assert.ok(obj === true);

// Use integers as keys?
var m = new Map();
m.set(1, 2);
encoded = cbor.encode(m); // <Buffer a1 01 02>

The sync encoding and decoding are exported as a leveldb encoding, as cbor.leveldb.

Supported types

The following types are supported for encoding:

  • boolean
  • number (including -0, NaN, and ±Infinity)
  • string
  • Array, Set (encoded as Array)
  • Object (including null), Map
  • undefined
  • Buffer
  • Date,
  • RegExp
  • url.URL
  • bignumber

Decoding supports the above types, including the following CBOR tag numbers:

Tag Generated Type
0 Date
1 Date
2 bignumber
3 bignumber
4 bignumber
5 bignumber
32 url.URL
35 RegExp

Extending

Encoders

TODO

Decoders

TODO

Developers

TODO