WebPEER is a P2P Network that Runs in a Browser
This webpeerjs library implements libp2p to create decentralized peer-to-peer network that runs in a browser without a central server.
Basic Chat App Demo available at : https://nuzulul.github.io/webpeerjs/demo/chat.html

WebPEER Network run over libp2p gossipsub protocol to enables communication between peers.
By default, the gossipsub implementation will sign all messages with the authorβs private key, and require a valid signature before accepting or propagating a message further. This prevents messages from being altered in flight, and allows recipients to authenticate the sender.
However, as a cooperative protocol, it may be possible for peers to interfere with the message routing algorithm in a way that disrupts the flow of messages through the network.
 |
 |  |
 |  |
 |  |
 |  |
 |  |
β | β | β | β | β | β |
Latest β | Latest β | Latest β | Latest β | Latest β | Latest β |
 |
β | β | β | β | β | β |
Latest β | Latest β | Latest β | Latest β | Latest β | Latest β |
Try now in Playground :
https://jsbin.com/suwesaliro/1/edit?html,output
NPM install:
npm i webpeerjs
Browser <script> tag :
Uses built-in JS files from latest release or CDN will make itβs exports available as webpeerjs in the global namespace.
<script src="https://cdn.jsdelivr.net/npm/webpeerjs@0.1/dist/umd/webpeerjs.min.js"></script>
import { webpeerjs } from 'webpeerjs'
void async function main() {
	const node = await webpeerjs.createWebpeer()
	
	console.log(`My node id : ${node.id}`)
	
	const [broadcast,listen,onmembersupdate] = node.joinRoom('globalroom')
	
	listen((message,id) => {
		console.log(`Message from ${id} : ${message}`)
	})
	
	onmembersupdate((data) => {
		console.log(`Members : ${data}`)
		broadcast('hello')
	})
	
}()
createWebpeer(config) - Create a new node.
    config - Configuration object contain:
        rtcConfiguration - (optional) Custom rtcConfiguration for WebRTC transport, currently the only transport available for direct peer-to-peer connectivity between browser.id - Get the unique ID of the node as an identity in the global network.status - Get the node status, returns connected or unconnected.peers - Get all connected peers.joinRoom(namespace) - Join to the room, returns an array of three functions, example : [Broadcaster, onListenBroadcast, onMembersUpdate].
    Broadcaster - Function to broadcast message to room members.
        onListenBroadcast - Callback function that listen on incoming broadcast message.onMembersUpdate - Callback function that listen on room members update.https://nuzulul.github.io/webpeerjs
MIT