@atcute/cbor
v2.3.2
Published
lightweight DASL dCBOR42 codec library for AT Protocol
Readme
@atcute/cbor
deterministic CBOR codec for AT Protocol.
npm install @atcute/cborthis library implements DASL's DRISL format used by AT Protocol for encoding records and repository data.
usage
encoding
import { encode } from '@atcute/cbor';
const record = {
$type: 'app.bsky.feed.post',
createdAt: '2024-08-18T03:18:24.000Z',
langs: ['en'],
text: 'hello world!',
};
const cbor = encode(record);
// -> Uint8Array(90)decoding
import { decode, decodeFirst } from '@atcute/cbor';
const record = decode(cborBytes);
// -> { $type: 'app.bsky.feed.post', ... }
// decode from a buffer containing multiple values
const [value, remainder] = decodeFirst(cborBytes);notes
undefinedvalues are omitted from maps (making it easier to construct objects)- bytes and CID links use lazy wrappers (
BytesWrapper,CidLinkWrapper) compatible with atproto's lex-json format - use
toBytes/fromBytesandtoCidLink/fromCidLinkto convert between lex-json and raw types - integers must be within JavaScript's safe integer range (no bigint support)
based on microcbor.
