@hideoutchat/web-sdk

0.1.4 • Public • Published

Hideout SDK for Web Browsers

CircleCI npm version npm downloads dependencies devDependencies license

This library includes all the necessary pieces for communicating on the Hideout network from within a modern web browser.

Installing

Using Yarn: yarn add @hideoutchat/web-sdk. Using NPM: npm install @hideoutchat/web-sdk.

Usage

import { hideout } from '@hideoutchat/web-sdk';

hideout(WebSocket).connect({
  onConnect(connection) {
    // Connection includes:
    // * #broadcast(): Send a signed but unencrypted message to all peers.
    // * #onBroadcast(): Listen for unencrypted messages from peers.
    // * #onGroupEvent(): Listen for encrypted group messages from peers.
    // * #onPeerEvent(): Listen for encrypted direct messages from peers.
    // * #sendGroupEvent(): Send a signed and encrypted message to a group using a symmetric key.
    // * #sendPeerEvent(): Send a signed and encrypted DH message to a peer.
  },

  onDisconnect() {
    // Recommended:
    // * Clean up after #onConnect()
    // * Retry #connect() with exponential back-off.
  },

  onError(error) {
    // This function gets called any time an error occurs.
    // Fatal errors will also trigger #onDisconnect().
  },

  onPublicKey(publicKey) {
    // EC384 public key in JWK JSON format
    // The `kid` property should be a SHA-256 hash of the public key.
  },

  privateKey: {
    // EC384 private key in JWK JSON format
    // Generate this however you wish.
    // The `kid` property should be a SHA-256 hash of the public key.
  },

  // The URL of a Hideout rendezvous node listening on a secure web socket
  url: 'wss://example.com:1234'
});

Dependencies (4)

Dev Dependencies (13)

Package Sidebar

Install

npm i @hideoutchat/web-sdk

Weekly Downloads

0

Version

0.1.4

License

MIT

Unpacked Size

79.5 kB

Total Files

83

Last publish

Collaborators

  • canterberry