An open API service indexing awesome lists of open source software.

https://github.com/digitalbazaar/cborld

A Javascript CBOR-LD processor for web browsers and Node.js apps.
https://github.com/digitalbazaar/cborld

cbor cborld jsonld linked-data

Last synced: about 1 year ago
JSON representation

A Javascript CBOR-LD processor for web browsers and Node.js apps.

Awesome Lists containing this project

README

          

# JavaScript CBOR-LD Processor

[![Build Status](https://img.shields.io/github/actions/workflow/status/digitalbazaar/cborld/main.yml)](https://github.com/digitalbazaar/cborld/actions/workflows/main.yml)
[![Coverage Status](https://img.shields.io/codecov/c/github/digitalbazaar/cborld)](https://codecov.io/gh/digitalbazaar/cborld)

> A JavaScript CBOR-LD Process for Web browsers and Node.js apps.

## Table of Contents

- [Background](#background)
- [Install](#install)
- [Usage](#usage)
- [API](#api)
- [Contribute](#contribute)
- [Commercial Support](#commercial-support)
- [License](#license)

## Background

This library provides a CBOR-LD Processor for Web browsers and Node.js
applications.

## Install

- Browsers and Node.js 18+ are supported.

### NPM

```
npm install @digitalbazaar/cborld
```

### Git

To install locally (for development):

```
git clone https://github.com/digitalbazaar/cborld.git
cd cborld
npm install
```

## Usage

This library provides two primary functions for encoding and decoding
CBOR-LD data.

### Encode to CBOR-LD

To encode a JSON-LD document as CBOR-LD:

```js
import {encode} from '@digitalbazaar/cborld';

const jsonldDocument = {
'@context': 'https://www.w3.org/ns/activitystreams',
type: 'Note',
summary: 'CBOR-LD',
content: 'CBOR-LD is awesome!'
};

// encode a JSON-LD Javascript object into CBOR-LD bytes
// Note: user must provide their own JSON-LD `documentLoader`
const cborldBytes = await encode({jsonldDocument, documentLoader});
```

To decode a CBOR-LD document to JSON-LD:

```js
import {decode} from '@digitalbazaar/cborld';

// get the CBOR-LD bytes
const cborldBytes = await fs.promises.readFile('out.cborld');

// decode the CBOR-LD bytes into a Javascript object
// Note: user must provide their own JSON-LD `documentLoader`
const jsonldDocument = await cborld.decode({cborldBytes, documentLoader});
```

## API

**NOTE**: Please check `encode.js` and `decode.js` for the latest API options.

### Functions



encode(options)Uint8Array


Encodes a given JSON-LD document into a CBOR-LD byte array.




decode(options)object


Decodes a CBOR-LD byte array into a JSON-LD document.



### Typedefs


diagnosticFunction :
function


A diagnostic function that is called with
diagnostic information. Typically set to console.log when
debugging.



documentLoaderFunction
string


Fetches a resource given a URL and returns it
as a string.



### encode(options) ⇒ Promise<Uint8Array>
Encodes a given JSON-LD document into a CBOR-LD byte array.

**Kind**: global function
**Returns**: Uint8Array - - The encoded CBOR-LD bytes.



Param
Type
Description




options
object

The
options to use when encoding to CBOR-LD.





options.jsonldDocument
object

The JSON-LD
Document to convert to CBOR-LD bytes.





options.documentLoader
documentLoaderFunction

The document loader to use when resolving JSON-LD Context URLs.





[options.appContextMap]
Map

A map of JSON-LD Context URLs and their encoded CBOR-LD values
(must be values greater than 32767 (0x7FFF)).





[options.appTermMap]
Map

A map of JSON-LD terms and their associated
CBOR-LD term codecs.





[options.diagnose]
diagnosticFunction

A function that, if provided, is called with diagnostic
information.




### decode(options) ⇒ Promise<object>
Decodes a CBOR-LD byte array into a JSON-LD document.

**Kind**: global function
**Returns**: object - - The decoded JSON-LD Document.



Param
Type
Description




options
object

The options to use when decoding CBOR-LD.





options.cborldBytes
Uint8Array

The encoded CBOR-LD bytes to
decode.





options.documentLoader
function

The document loader to use when
resolving JSON-LD Context URLs.





[options.appContextMap]
Map

A map of JSON-LD Context URLs and
their associated CBOR-LD values. The values must be greater than
32767 (0x7FFF)).





[options.appTermMap]
Map

A map of JSON-LD terms and
their associated CBOR-LD term codecs.





[options.diagnose]
diagnosticFunction

A function that, if
provided, is called with diagnostic information.




### diagnosticFunction : function
A diagnostic function that is called with diagnostic information. Typically
set to `console.log` when debugging.

**Kind**: global typedef



ParamTypeDescription


messagestring

The diagnostic message.

### documentLoaderFunction ⇒ string
Fetches a resource given a URL and returns it as a string.

**Kind**: global typedef
**Returns**: string - The resource associated with the URL as a string.



Param
Type
Description




url
string

The URL to retrieve.




Examples:

```
TBD
```

## Contribute

Please follow the existing code style.

PRs accepted.

If editing the README, please conform to the
[standard-readme](https://github.com/RichardLitt/standard-readme) specification.

## Commercial Support

Commercial support for this library is available upon request from
Digital Bazaar: support@digitalbazaar.com

## License

[BSD-3-Clause](LICENSE.md) © Digital Bazaar