std/cbor/mod.ts

49 lines
1.8 KiB
TypeScript
Raw Normal View History

// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
/**
* ## Overview
* Concise Binary Object Representation (CBOR) is a binary data serialisation
* format optimised for compactness and efficiency. It is designed to encode a
* wide range of data types, including integers, strings, arrays, and maps, in a
* space-efficient manner.
* [RFC 8949 - Concise Binary Object Representation (CBOR)](https://datatracker.ietf.org/doc/html/rfc8949)
* spec.
*
* ## Limitations
* - This implementation only supports the encoding and decoding of
* "Text String" keys.
* - This implementation encodes decimal numbers with 64 bits. It takes no
* effort to figure out if the decimal can be encoded with 32 or 16 bits.
* - When decoding, integers with a value below 2 ** 32 will be of type
* {@link number}, with all larger integers being of type {@link bigint}.
*
* Functions and classes may have more specific limitations listed.
*
* ```ts
* import { assert, assertEquals } from "@std/assert";
* import { decodeCbor, encodeCbor } from "@std/cbor";
*
* const rawMessage = "I am a raw Message!";
*
* const encodedMessage = encodeCbor(rawMessage);
* const decodedMessage = decodeCbor(encodedMessage);
*
* assert(typeof decodedMessage === "string");
* assertEquals(decodedMessage, rawMessage);
* ```
*
* @module
*/
export * from "./array_encoder_stream.ts";
export * from "./byte_encoder_stream.ts";
export * from "./decode_cbor_sequence.ts";
export * from "./decode_cbor.ts";
export * from "./encode_cbor_sequence.ts";
export * from "./encode_cbor.ts";
export * from "./map_encoder_stream.ts";
export * from "./sequence_decoder_stream.ts";
export * from "./sequence_encoder_stream.ts";
export * from "./tag.ts";
export * from "./text_encoder_stream.ts";
export * from "./types.ts";