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.
- Host: GitHub
- URL: https://github.com/digitalbazaar/cborld
- Owner: digitalbazaar
- License: bsd-3-clause
- Created: 2020-07-10T21:54:38.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-10-22T01:45:19.000Z (over 1 year ago)
- Last Synced: 2025-03-30T21:12:31.815Z (about 1 year ago)
- Topics: cbor, cborld, jsonld, linked-data
- Language: JavaScript
- Homepage: https://json-ld.github.io/cbor-ld-spec/
- Size: 492 KB
- Stars: 25
- Watchers: 13
- Forks: 18
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# JavaScript CBOR-LD Processor
[](https://github.com/digitalbazaar/cborld/actions/workflows/main.yml)
[](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 toconsole.logwhen
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