Skip to content

Reading-eScience-Centre/cborjs-typedarray-decoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cborjs-typedarray-decoder Build Status

A cbor-js decoder for CBOR typed arrays.

This is a work-in-progress and not battle-tested yet.

Example

Include cbor-js and this plugin in your page:

<script src="https://cdn.rawgit.com/paroga/cbor-js/v0.2.0/cbor.js"></script>
<script src="https://cdn.jsdelivr.net/cborjs-typedarray-decoder/0.1/cborjs-typedarray-decoder.min.js"></script>

Then register the decoder and you're ready to go:

CBOR.registerDecoder(CBORTypedArrayDecoder)
CBOR.decode(...)

How does it work?

Numeric typed arrays in CBOR can be encoded by using tags as defined in the soon-to-be-RFC draft-jroatch-cbor-tags-02. Compared to standard arrays, they use less space (1 byte less per array element) and are faster to decode.

This decoder wraps CBOR typed arrays directly as JavaScript typed arrays. By providing a view on top of the underlying ArrayBuffer supplied by cbor-js it makes parsing very efficient.

In the unlikely case that the platform endianness where the decoder is running does not match the one used when encoding, a fast byte swapping on the original array data is done using optimized for-loops for each bit length.

Supported types

CBOR typed arrays currently support more data types than in JavaScript. Only the ones existing in JavaScript are supported, which are currently:

  • Int8Array
  • Uint8Array
  • Uint8ClampedArray
  • Int16Array
  • Uint16Array
  • Int32Array
  • Uint32Array
  • Float32Array
  • Float64Array

About

cbor-js decoder for CBOR typed arrays

Resources

License

Stars

Watchers

Forks

Packages

No packages published