@libp2p/webrtc-star
v7.0.0
Published
libp2p WebRTC transport that includes a discovery mechanism provided by the signalling-star
Downloads
4,906
Readme
@libp2p/webrtc-star
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>
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'
// Using wrtc in node
const star = webRTCStar({ wrtc })
// Using electron-webrtc in electron
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
Connection
Peer Discovery - ws.discovery
License
Licensed under either of
- Apache 2.0, (LICENSE-APACHE / http://www.apache.org/licenses/LICENSE-2.0)
- MIT (LICENSE-MIT / http://opensource.org/licenses/MIT)
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.