Skip to content

hideoutchat/web-sdk

Repository files navigation

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'
});

About

Hideout SDK for web applications.

Resources

License

Stars

Watchers

Forks

Packages

No packages published