All Projects → perguth → secure-webrtc-swarm

perguth / secure-webrtc-swarm

Licence: MIT License
💢 Create a swarm of p2p connections with invited peers using WebRTC.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to secure-webrtc-swarm

Diffy
🎞️💓🍿 Love streaming - It's always best to watch a movie together ! 🤗
Stars: ✭ 37 (+60.87%)
Mutual labels:  stream, webrtc, p2p
Peertransfer
📦 • Send a file p2p and e2e encrypted in your browser using WebRTC.
Stars: ✭ 238 (+934.78%)
Mutual labels:  encryption, webrtc, p2p
jackpair
p2p speech encrypting device with analog audio interface suitable for GSM phones
Stars: ✭ 26 (+13.04%)
Mutual labels:  encryption, p2p
Qtox
qTox is a chat, voice, video, and file transfer IM client using the encrypted peer-to-peer Tox protocol.
Stars: ✭ 3,843 (+16608.7%)
Mutual labels:  encryption, p2p
Berty
Berty is a secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network
Stars: ✭ 5,101 (+22078.26%)
Mutual labels:  encryption, p2p
Rapidbay
Self-hosted torrent video streaming service compatible with Chromecast and AppleTV deployable in the cloud
Stars: ✭ 163 (+608.7%)
Mutual labels:  stream, p2p
Video Stream Merger
Merge multiple video MediaStreams into one composite.
Stars: ✭ 214 (+830.43%)
Mutual labels:  stream, webrtc
Covertutils
A framework for Backdoor development!
Stars: ✭ 424 (+1743.48%)
Mutual labels:  encryption, stream
Drops
opmsg p2p transport network
Stars: ✭ 58 (+152.17%)
Mutual labels:  encryption, p2p
Onionr
Private Decentralized Communication Network 🎭 🧅
Stars: ✭ 84 (+265.22%)
Mutual labels:  encryption, p2p
Iostreams
IOStreams is an incredibly powerful streaming library that makes changes to file formats, compression, encryption, or storage mechanism transparent to the application.
Stars: ✭ 84 (+265.22%)
Mutual labels:  encryption, stream
Libjitsi
Advanced Java media library for secure real-time audio/video communication.
Stars: ✭ 536 (+2230.43%)
Mutual labels:  stream, webrtc
Obs Studio Webrtc
This is a fork of OBS-studio with generic support for webrtc. It leverages the same webrtc implementation most browsers use.
Stars: ✭ 343 (+1391.3%)
Mutual labels:  stream, webrtc
Bluntly
serverless, encrypted, NAT-breaking p2p connections - DEPRECATED
Stars: ✭ 270 (+1073.91%)
Mutual labels:  encryption, p2p
Magnet Player
🎥 A place for streaming torrents directly from your browser
Stars: ✭ 346 (+1404.35%)
Mutual labels:  stream, webrtc
Constellation
Peer-to-peer encrypted message exchange
Stars: ✭ 365 (+1486.96%)
Mutual labels:  encryption, p2p
Ayame
WebRTC Signaling Server Ayame
Stars: ✭ 218 (+847.83%)
Mutual labels:  webrtc, p2p
WebRTCCTV
WebRTCCTV is a signaling server & webapp able to stream from RTSP cameras using WebRTC
Stars: ✭ 32 (+39.13%)
Mutual labels:  stream, webrtc
Peergos
A p2p, secure file storage, social network and application protocol
Stars: ✭ 895 (+3791.3%)
Mutual labels:  encryption, p2p
Ipfs Wormhole
Get things from one computer to another, safely. Over IPFS (which not even required to receive those things).
Stars: ✭ 107 (+365.22%)
Mutual labels:  encryption, p2p

secure-webrtc-swarm

Greenkeeper badge

Create a swarm of p2p connections with invited peers using WebRTC.

This module allows you to securely create a (fully) meshed network of WebRTC connections. To do this a shared secret is used. The secret should be shared out of band eg. by passing it along in the hash portion of a link.

While connecting via WebRTC personal information like available IP addresses is exchanged via a remote WebSocket server. This creates the risk of information leakage and man-in-the-middle attacks. secure-webrtc-swarm encrypts this data stream using the shared secret. The shared secret is also used to authenticate incoming WebRTC connection requests.

Install

npm install secure-webrtc-swarm

Usage

var Hub = require('signalhub')
var Swarm = require('secure-webrtc-swarm')
var wrtc = require('electron-webrtc')() // not needed in the browser

var hub1 = new Hub('myNamespace', ['https://signalhub.perguth.de:65300/'])
var hub2 = new Hub('myNamespace', ['https://signalhub.perguth.de:65300/'])

var key1 = Swarm.createKey() // default key length: 16
var key2 = Swarm.createKey()

var swarm1 = new Swarm(hub1, {
  keys: [key1, key2],
  wrtc // not needed in the browser
})
var swarm2 = new Swarm(hub2, {
  wrtc
})
swarm2.keys.push(key1)

swarm1.on('peer', function (peer, id) {
  console.log('connected to a new peer:', id)
  console.log('total peers:', swarm1.peers.length)
})

API

This module shares the same API as webrtc-swarm with the addition of:

Swarm.createKey([length])

Creates a random string containg alphanumeric characters. Default length: 16

swarm.keys

Contains the keys that are shared within the swarm. Only peers with at least one matching key connect to each other.

swarm.sharedKeys

Contains learned information about which peer accepts which key.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].