awesome-peer-to-peer
by kgryte
A list of peer-to-peer resources.
AI summary
P2P library
A curated collection of peer-to-peer networking resources and libraries for building decentralized applications
- stars
- 2.4K
- forks
- 195
- watching
- 94
- awesome lists
- 4
- entries
- 254
What's in the list
254 links in 9 sections, with live GitHub stats.activeno commit in 2y
Modules
wrtc
: native module for NodeJS
rtc
: WebRTC suite
rtc-dcstream
: streams2 layer for WebRTC data channels
rtc-signaller
: transport agnostic signalling for WebRTC
rtc-quickconnect
: high-level wrapper for creating WebRTC apps
rtc-switch
: core logic for
rtc-switchboard
: server side in-memory signaller
rtc-signal
: core logic for client side signaling
rtc-mesh
: create a P2P mesh data structure using data channels
rtc-core
: core definitions and functions for rtc
rtc-everywhere
: cross-everything WebRTC mega-project
webtorrent
: streaming torrent client for node and the browser
peer-wire-swarm
: swarm implementation for bittorrent
- bittorrent-swarm
: bittorrent swarm implementation
bittorrent-dht
: BitTorrent DHT implementation
parse-torrent
: parse a torrent identifier
simple-peer
: Simple WebRTC video/voice and data channels
torrent-discovery
: Discover BitTorrent and WebTorrent peers
bittorrent-tracker
: BitTorrent tracker for client and server
create-torrent
: Create torrent files
parse-torrent-file
: Parse a torrent file
bittorrent-protocol
: BitTorrent peer wire protocol
torrent
: download torrents with NodeJS from the CLI
magnet-uri
: parse a magnet URI
- webtorrent-chrome
: BitTorrent client as a Chrome App
peer-wire-protocol
: peer wire protocol used in torrents for NodeJS
socket.io-p2p
: signalling server and client library
node-torrent
: torrent reader, write, and hash checker
torrent-piece
: torrent piece abstraction
torrent-stream
: streaming torrent engine used by peerflix
torrent-mount
: Mount a torrent or magnet link as a filesystem
peerflix
: streaming torrent client for NodeJS
friends-swarm
: a WebRTC swarm
peerbot
: message seeding utility for friends
webrtc-swarm
: create a swarm of P2P connections using WebRTC and a signalhub
signalhub
: simple signalling server
peervision
: live P2P streaming protocol
airswarm
: network swarm that discovers other peers on the network using multicast DNS
webcat
: P2P pipe using WebRTC, Github keys for auth, and signalhub for discovery
torrent-blob-store
: read-only BitTorrent backed streaming blob store
hyperlog
: Merkle DAG that replicates based on scuttlebutt logs and causal linking
ble-swarm
: swarm over bluetooth low energy
multicast-dns
: multicast-dns in JS
screencat
: WebRTC screensharing
torrent-docker
: realtime boot of remote docker images using bittorrent
airpaste
: Network pipe that auto-discovers other peers using mdns
polo
: zero configuration service discovery
read-torrent
: read and parse a torrent from a resource
magnet-link
: get a magnet link from a torrent file
peervisionary
: CLI combining airswarm and peervision
serverless-webrtc
: serverless WebRTC
peer
: peerjs server
scuttlebutt
: real-time replication
secure-scuttlebutt
: secure database with replication
scuttlebucket
: nested scuttlebutts
scuttleboat
: dynamic scuttlebucket
rtc-SCAMP
: scalable membership protocol
rtc-SCAMP-mbr
: scalable membership protocol
network
: arbitrary network implementations between clients
BoundedBroadcastDefinition
: broadcasting component on top of communication overlay
discover
: distributed master-less node discovery
k-bucket
: DHT k-bucket implementation
gossipmonger
: real-time replication with scuttlebutt
kadoh
: kademlia over HTTP
kademlia-dht
: DHT
kademlia
: kademlia
dhtkv
: cli for bittorrent storing values in mainline torrent DHT
abstract-peer-routing
: a test suite for implementing peer routing in libp2p
abstract-record-store
: a test suite to implement in IPFS record store
libp2p-swarm
: IPFS swarm implementation
libp2p-kad-routing
: IPFS Kademlia routing
libp2p-kad-record-store
: IPFS Kademlia record store
libp2p-distributed-record-store
: IPFS distributed record store
libp2p-record
: IPFS record object
libp2p-railing
: railing of a Node through a bootstrap peer list
- libp2p-random-walk
: peer discovery via a DHT random walk
libp2p-mdns-discovery
: peer discovery via mDNS
libp2p-utp
: node uTP implementation
libp2p-spdy
: multistream into Stream Multiplexing
libp2p-udt
: node UDT implementation
libp2p-udp
: node UDP implementation
libp2p-tcp
: TCP implementation of abstract transport interface
peer-info
: IPFS peer abstraction
peer-id
: IPFS peer id
peer-book
: Peer Store for libp2p and IPFS
muxrpc
: multiplexed rpc
secret-stack
: connect peers using secret handshakes
ssb-feed
: secure scuttlebutt feed
mdns
: discover services on your local network
- append-only-torrent
: create a sequence of torrent files for growing input
fully-connected-topology
: create a fully connected topology (mesh)
blockcast
: protocol for storing data in bitcoin blockchains
hive.js
: browser-to-browser distributed cache for video using WebRTC
ipscend
: deploy and host web apps on IPFS
- babel-routing-protocol
: routing over p2p mesh
butter
: free parts of popcorn time
merkle-patricia-tree
: as documented by Ethereum
rtc-data-stream
: convert a WebRTC data channel into a stream
peermesh
: p2p file transfer using WebRTC
peertransfer
: sends files p2p securely in the browser
merkle-stream
: generate a merkle tree from streamed data
discovery-channel
: search for a key across multiple discovery networks
anonymous-networks
: distributed, p2p chat app using IPFS
hyperdrive
: A file sharing network based on rabin file chunking and append only feeds of data verified by merkle trees
webrtc-connect
: Establish WebRTC Data Channels between browser-node and node-node with a TCP/HTTP/WebSockets "createServer/attach" like interface
discovery-network
: a p2p discovery network
rtc-stream
: Webrtc using regular node streams
viraljs
: p2p distribution of apps
wrtc-ice-cand-parse
: WRTC Ice Candidate parse
deejay
: Music player that broadcasts to everyone on the same network
osm-p2p-db
: p2p database for open street map data
dns-discovery
: Discovery peers in a distributed system using regular dns and multicast dns
k-rpc-socket
: Low level implementation of the k-rpc network layer that the BitTorrent DHT uses
ucat
: ucat(uTP cat) implementation in JavaScript to be used with Node.js
k-rpc
: Low-level implementation of the k-rpc protocol used the BitTorrent DHT
osm-p2p-server
: serve open street map 0.6 api endpoints over a local p2p http server
secure-webrtc-swarm
: with whitelisting and encryption
node-ice
: Interactive Connectivity Establishment (ICE) (RFC 5245) for Node.js
node-rtc-peer-connection
: RTCPeerConnection for Node.js
ipfs-merkle-dag
: IPFS Merkle DAG JavaScript Implementation
ipfs-blocks
: JavaScript Implementation of Block and BlockService
electron-webrtc
: Use WebRTC in Node.js via a hidden Electron process
peerweb.js
: A client side library for fetching and rendering a static website from a torrent
webcoin
: SPV Bitcoin client for Node.js and the browser
- swarmlog
: create a p2p webrtc swarm around a hyperlog
discovery-swarm
: A network swarm that uses discovery-channel to find peers
discovery-server
: A tcp/utp server that auto announces itself using discovery-channel
ipfs-hyperlog
: IPFS Merkle DAG that replicates based on scuttlebutt logs and causal linking
karma-peer
: Test p2p apps in multiple browsers with karma
nuTorrent
: A Pure Javascript BitTorrent Client
- hyperlog-seed
: seed content hashes embedded in a hyperlog
peer-tweet
: Decentralized feeds using BitTorrent's DHT
torrent-worker
: Streaming torrent client in a web worker for Node.js
- hyperlog-webtorrent-seed
: seed webtorrent magnet links from a hyperlog
- swarmbot-webtorrent
: webtorrent seeding plugin for swarmbot
peer-exchange
: Decentralized peer discovery and signaling
- kad
: extensible implementation of the kademlia distributed hash table for node.js and the browser
- kad-webrtc
: WebRTC transport for kad Kademlia implementation
freeice
: Get free, randomized STUN and TURN servers for your WebRTC application
web-to-dat
: Clone a website and share with dat
webtorrent-cli
: WebTorrent, the streaming torrent client. For the command line
ipfs-data-importing
: JavaScript implementation of the layout and chunking mechanisms used by IPFS
- chatwizard
: p2p webrtc chatroom client
js-gossip-cyclon
: Cyclon Gossip: (P2P membership management) in Javascript
CheckWebPeer
: Check WebRTC peers of torrents
hyperdrive-archive-stream
: Join the p2p swarm for a given hyperdrive archive
hyperirc
: Read IRC through hypercore
- spellcast
: p2p live streaming in the browser
orbit
: Distributed peer-to-peer chat application on IPFS
orbit-db
: Distributed peer-to-peer database on IPFS
peer-network
: Create servers/clients that listen on names instead of ports and hostnames and are accessible over the internet
resilient-swarm
: An efficient, secure, and reliable WebRTC swarm
hyperdht
: dht based on kademlia, with a focus on extensibility + modularity
hypercore-dag
: DAGs on top of hypercore, allowing verified random-access to graph nodes
hypercore-archiver
: A hypercore peer that will backup multiple hypercores/hyperdrives efficiently to disk
hyperarchiver
: Host, backup, and share hyperdrive archives
hyperpipe
: Distributed input/output pipe
hypername
: Distributed name server
hyperreduce
: Distributed reduce on top of hypercore
hyperfilter
: Distributed map and filter
normcore
: No-config distributed streams using hypercore
hyperfeed
: p2p rss publishing
hyperdiscovery
: Join the swarm for a given hypercore or hyperdrive feed
dht-rpc
: Make RPC calls over a Kademlia based DHT
- hyperdrive-multiwriter
: present a bundle of hyperdrive archives together as a multi-writer view
hyperhealth
: Monitor the health of a hyperdrive or dat, including peer count and peer mirror percentages
assassin
: Store key-value pairs in a decentralized NoSQL database built with
hyperlapse
: Distributed process manager
voter
: Distributed voting based on Scuttlebutt
hyper-string
: p2p conflict-free string primitive
hyperhost
: P2P Node Servers in the Browser
hypertweet
: concept tweet -> hypercore thingy
nile.js
: Scalable peer to peer live video streaming built on torrents and webRTC
- chatmesh
: p2p chat using hyperdb
SIP.js
: A simple, intuitive, and powerful JavaScript signaling library
noise-network
: Authenticated P2P network backed by HyperSwarm and NOISE
Libraries
libwebrtc
: companion to
p2p
: browser JS library
SimpleWebRTC
: browser JS library
signalmaster
: signaling server for
coturn
: next evolution of the rfc5766-turn-server project
peerjs
: simple peer-to-peer with WebRTC
go-peerstream
: P2P multi-multiplexing in Go
ipfs
: distributed file system
ipfs specs
: specs for IPFS
ipget
: wget for IPFS
btfs
: bittorrent filesystem based on FUSE (C++)
- swarmbot
: mirroring for a p2p mesh of swarmlogs
p2p-graph
: Real-time P2P network visualization with D3
planktos
: Serving websites over bittorrent
dat
: Sync data across the distributed web
Netflux
: full mesh network of clients and/or servers
libdatachannel
: WebRTC DataChannels standalone implementation (C++)
Apps
friends
: P2P chat
- openbazaar
: decentralized marketplace:
ipfsbin
: Run IPFS snippets
patchwork
: p2p secure messaging
webtorrent-app
: WebTorrent, the streaming torrent client. For OS X, Windows, and Linux
snapdrop
: A HTML5 clone of Apple's AirDrop
peerweb
: PeerWeb browser
beaker
: Decentralization tech in a browser built with electron
- ferment
: Peer-to-peer audio sharing and streaming application. Like SoundCloud but decentralized. A mashup of ssb, webtorrent and electron
roll-call
: Free and reliable audio calls for everyone w/ browser p2p
cache-p2p
: CacheP2P is a highly distributed cache platform based on WebTorrent and runs only in the browser
dropub
: P2P publishing for everyone. Dropbox meets BitTorrent
- norcal
: P2P calendaring
hyperpad
: P2P collaborative text editor
Experiments
- torrent-log
: message feed over bittorrent
GitTorrent
: A decentralization of Github using BitTorrent and Bitcoin
webrtc-ips
: Stun IP address requests for WebRTC
web2web
: P2P web powered by torrents and blockchain
Workshops
- chat-room-server-and-p2p
: workshop example creating a websocket chat room replaced with p2p version using webrtc
p2p-file-sharing-workshop
: Learn about distributed file sharing through a series of fun and exciting exercises
Companies
Resources
- bittorrent spec
: BitTorrent specification
- webtorrent.io
: webtorrents for NodeJS and the browser
- webrtc-ring
: resource discovery
- P2P design
: Dominic Tarr on P2P design issues
- webgc
: gossiping
topology
: different network topologies
p2pweb
: Create a web where web pages are published/shared in a P2P fashion
bitweb
: websites sharing using bittorrent
p2p handbook
: introductory handbook on p2p tech & javascript
Other
brickhouse
: security focused desktop applications
bigchaindb
: A scalable blockchain database
People
Nothing in this list matches your filter.
Featured in 4 awesome lists
Each link jumps to the spot where the list mentions awesome-peer-to-peer.