@libp2p/webrtc-star
![CI](https://img.shields.io/github/actions/workflow/status/libp2p/js-libp2p-webrtc-star/js-test-and-release.yml?branch=master&style=flat-square)
libp2p WebRTC transport that includes a discovery mechanism provided by the signalling-star
Table of contents
Install
$ npm i @libp2p/webrtc-star
Browser <script>
tag
Loading this module through a script tag will make it's exports available as Libp2pWebrtcStar
in the global namespace.
<script src="https://unpkg.com/@libp2p/webrtc-star/dist/index.min.js"></script>
![](https://raw.githubusercontent.com/libp2p/interface-peer-discovery/master/img/badge.png)
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 { createLibp2pNode } from 'libp2p'
import { webRTCStar } from '@libp2p/webrtc-star'
import wrtc from 'wrtc'
import electronWebRTC from 'electron-webrtc'
const star = webRTCStar({ wrtc })
const star = webRTCStar({ wrtc: electronWebRTC() })
const node = await createLibp2pNode({
addresses: {
listen: [
'/ip4/188.166.203.82/tcp/20000/wss/p2p-webrtc-star'
]
},
transports: [
star.transport
],
peerDiscovery: [
star.discovery
]
})
await node.start()
await node.dial('/ip4/188.166.203.82/tcp/20000/wss/p2p-webrtc-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSooo2a')
Using this module in the Browser
import { createLibp2pNode } from 'libp2p'
import { webRTCStar } from '@libp2p/webrtc-star'
const star = webRTCStar()
const node = await createLibp2pNode({
addresses: {
listen: [
'/ip4/188.166.203.82/tcp/20000/wss/p2p-webrtc-star'
]
},
transports: [
star.transport
],
peerDiscovery: [
star.discovery
]
})
await node.start()
await node.dial('/ip4/188.166.203.82/tcp/20000/wss/p2p-webrtc-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSooo2a')
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
![](https://raw.githubusercontent.com/libp2p/interface-transport/master/img/badge.png)
Connection
![](https://raw.githubusercontent.com/libp2p/interface-connection/master/img/badge.png)
Peer Discovery - ws.discovery
![](https://raw.githubusercontent.com/libp2p/interface-peer-discovery/master/img/badge.png)
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.