JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1257
  • Score
    100M100P100Q119113F
  • License Apache-2.0 OR MIT

libp2p WebRTC transport that includes a discovery mechanism provided by the signalling-star

Package Exports

  • @libp2p/webrtc-star

Readme

@libp2p/webrtc-star

libp2p.io IRC Discuss codecov CI

libp2p WebRTC transport that includes a discovery mechanism provided by the signalling-star

Table of contents

Install

$ npm i @libp2p/webrtc-star

Description

libp2p-webrtc-star is one of the WebRTC transports available for libp2p.

Usage

Using this module in Node.js (read: not in the browser)

To use this module in Node.js, you have to BYOI of WebRTC, there are multiple options out there, unfortunately, none of them are 100% solid. The ones we recommend are: wrtc and electron-webrtc.

Instead of just creating the WebRTCStar instance without arguments, you need to pass an options object with the WebRTC implementation:

import wrtc from 'wrtc'
import electronWebRTC from 'electron-webrtc'
import { WebRTCStar } from '@libp2p/webrtc-star'

// Using wrtc
const ws1 = new WebRTCStar({ wrtc: wrtc })

// Using electron-webrtc
const ws2 = new WebRTCStar({ wrtc: electronWebRTC() })

Using this module in the Browser

import { WebRTCStar } from '@libp2p/webrtc-star'
import { Multiaddr } from '@multiformats/multiaddr'
import all from 'it-all'

const addr = multiaddr('/ip4/188.166.203.82/tcp/20000/wss/p2p-webrtc-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSooo2a')

const ws = new WebRTCStar({ upgrader })

const listener = ws.createListener((socket) => {
  console.log('new connection opened')
  pipe(
    ['hello'],
    socket
  )
})

await listener.listen(addr)
console.log('listening')

const socket = await ws.dial(addr)
const values = await all(socket)

console.log(`Value: ${values.toString()}`)

// Close connection after reading
await listener.close()

Signalling server

This module has an accompanying signalling server which is used to discover other peers running the libp2p-webrtc-star transport.

Please see the libp2p-webrtc-star-signalling-server module for more information.

API

Transport

Connection

Peer Discovery - ws.discovery

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.