@wireapp/cbor
v4.7.3
Published
Implementation of Concise Binary Object Representation (CBOR) data format (RFC7049).
Downloads
1,517
Maintainers
Keywords
Readme
Wire
This repository is part of the source code of Wire. You can find more information at wire.com or by contacting [email protected].
You can find the published source code at github.com/wireapp.
For licensing information, see the attached LICENSE file and the list of third-party licenses at wire.com/legal/licenses/.
CBOR
Installation
yarn add @wireapp/cbor
Usage
TypeScript
import * as CBOR from '@wireapp/cbor';
const payload: Uint8Array = new Uint8Array([
255, 18, 15, 34, 210, 168, 165, 188, 81, 33, 34, 40, 73, 61, 149, 198, 154, 54, 128, 76, 191, 161, 58, 176, 45, 75, 1,
33, 80, 157, 28, 89,
]);
// Encoding
const encoder: CBOR.Encoder = new CBOR.Encoder();
const encoded: ArrayBuffer = encoder.object(1).u8(0).bytes(payload).get_buffer();
// Decoding
let decoded: Uint8Array;
const decoder: CBOR.Decoder = new CBOR.Decoder(encoded);
const properties: number = decoder.object();
for (let i = 0; i < properties; i++) {
switch (decoder.u8()) {
case 0:
decoded = new Uint8Array(decoder.bytes());
break;
default:
decoder.skip();
}
}
// Comparison
const isEqual = decoded.every((row, index) => {
return decoded[index] === payload[index];
});
console.log(isEqual); // true