cbor-redux
The Concise Binary Object Representation (CBOR) data format (RFC 7049) implemented in pure JavaScript, revived.
Rewritten in TypeScript for the browser, Deno, and Node.
Usage
Require cbor-redux
in Node:
const { CBOR } = require('cbor-redux')
or import in Deno:
import { CBOR } from 'https://deno.land/x/cbor_redux@0.4.0/mod.ts'
or script on an HTML page:
<script src="https://cdn.skypack.dev/cbor-redux@^0.4.0" type="text/javascript"></script>
For ES5 polyfill, use es5/CBOR.js in the npm package or else
<script src="https://unpkg.com/cbor-redux@0.4.0/es5/CBOR.js"></script>
.
Then you can use it via the CBOR
-object in your code:
const initial = { Hello: 'World' }
const encoded = CBOR.encode(initial)
const decoded = CBOR.decode(encoded)
After running this example initial
and decoded
represent the same value.
API
The CBOR
-object provides the following two functions:
CBOR.decode(data: ArrayBuffer)
Take the ArrayBuffer object data and return it decoded as a JavaScript object.
CBOR.encode(data: any)
Take the JavaScript object data and return it encoded as a ArrayBuffer object.
For complete API details, visit the documentation.
Combination with WebSocket
The API was designed to play well with the WebSocket
object in the browser:
var websocket = new WebSocket(url);
websocket.binaryType = "arraybuffer";
...
websocket.onmessage = function(event) {
var message = CBOR.decode(event.data);
};
...
websocket.send(CBOR.encode(message));