awesome-peer-to-peer
P2P library
A curated collection of peer-to-peer networking resources and libraries for building decentralized applications
A list of peer-to-peer resources.
2k stars
94 watching
195 forks
last commit: over 1 year ago
Linked from 4 awesome lists
awesomep2ppeer-to-peerresources
Peer-to-Peer / Modules | |||
easyRTC | |||
wrtc | 2,732 | 7 months ago | : native module for NodeJS |
rtc | 265 | about 7 years ago | : WebRTC suite |
rtc-dcstream | 16 | about 5 years ago | : streams2 layer for WebRTC data channels |
rtc-signaller | 38 | almost 9 years ago | : transport agnostic signalling for WebRTC |
rtc-quickconnect | 186 | over 1 year ago | : high-level wrapper for creating WebRTC apps |
rtc-switch | 4 | over 8 years ago | : core logic for |
rtc-switchboard | 57 | about 5 years ago | : server side in-memory signaller |
rtc-signal | 5 | about 8 years ago | : core logic for client side signaling |
rtc-mesh | 71 | over 9 years ago | : create a P2P mesh data structure using data channels |
rtc-core | 12 | about 2 years ago | : core definitions and functions for rtc |
rtc-everywhere | 652 | over 6 years ago | : cross-everything WebRTC mega-project |
webtorrent | 29,663 | 7 days ago | : streaming torrent client for node and the browser |
peer-wire-swarm | 80 | about 5 years ago | : swarm implementation for bittorrent |
bittorrent-swarm | : bittorrent swarm implementation | ||
bittorrent-dht | 1,233 | 26 days ago | : BitTorrent DHT implementation |
parse-torrent | 441 | 26 days ago | : parse a torrent identifier |
simple-peer | 7,440 | 5 months ago | : Simple WebRTC video/voice and data channels |
torrent-discovery | 217 | 5 days ago | : Discover BitTorrent and WebTorrent peers |
bittorrent-tracker | 1,787 | 14 days ago | : BitTorrent tracker for client and server |
create-torrent | 341 | 26 days ago | : Create torrent files |
parse-torrent-file | 63 | over 6 years ago | : Parse a torrent file |
bittorrent-protocol | 347 | 7 days ago | : BitTorrent peer wire protocol |
torrent | 633 | about 1 year ago | : download torrents with NodeJS from the CLI |
magnet-uri | 225 | 2 months ago | : parse a magnet URI |
webtorrent-chrome | : BitTorrent client as a Chrome App | ||
peer-wire-protocol | 46 | over 6 years ago | : peer wire protocol used in torrents for NodeJS |
socket.io-p2p | 1,030 | about 4 years ago | : signalling server and client library |
node-torrent | 197 | 3 months ago | : torrent reader, write, and hash checker |
torrent-piece | 23 | 26 days ago | : torrent piece abstraction |
torrent-stream | 1,952 | almost 4 years ago | : streaming torrent engine used by peerflix |
torrent-mount | 1,406 | over 9 years ago | : Mount a torrent or magnet link as a filesystem |
peerflix | 6,191 | over 2 years ago | : streaming torrent client for NodeJS |
friends-swarm | 33 | about 6 years ago | : a WebRTC swarm |
peerbot | 25 | about 6 years ago | : message seeding utility for friends |
webrtc-swarm | 382 | about 4 years ago | : create a swarm of P2P connections using WebRTC and a signalhub |
signalhub | 668 | 9 months ago | : simple signalling server |
peervision | 97 | about 9 years ago | : live P2P streaming protocol |
airswarm | 130 | over 8 years ago | : network swarm that discovers other peers on the network using multicast DNS |
webcat | 445 | over 4 years ago | : P2P pipe using WebRTC, Github keys for auth, and signalhub for discovery |
torrent-blob-store | 38 | almost 9 years ago | : read-only BitTorrent backed streaming blob store |
hyperlog | 470 | almost 8 years ago | : Merkle DAG that replicates based on scuttlebutt logs and causal linking |
ble-swarm | 62 | over 9 years ago | : swarm over bluetooth low energy |
multicast-dns | 513 | 5 months ago | : multicast-dns in JS |
screencat | 3,016 | almost 9 years ago | : WebRTC screensharing |
torrent-docker | 315 | about 9 years ago | : realtime boot of remote docker images using bittorrent |
airpaste | 824 | over 3 years ago | : Network pipe that auto-discovers other peers using mdns |
polo | 247 | over 9 years ago | : zero configuration service discovery |
read-torrent | 73 | about 6 years ago | : read and parse a torrent from a resource |
magnet-link | 63 | over 3 years ago | : get a magnet link from a torrent file |
peervisionary | 42 | about 9 years ago | : CLI combining airswarm and peervision |
serverless-webrtc | 1,545 | about 3 years ago | : serverless WebRTC |
peer | 4,377 | 3 days ago | : peerjs server |
scuttlebutt | 1,317 | over 7 years ago | : real-time replication |
secure-scuttlebutt | 1,172 | 4 months ago | : secure database with replication |
scuttlebucket | 21 | over 11 years ago | : nested scuttlebutts |
scuttleboat | 8 | about 7 years ago | : dynamic scuttlebucket |
rtc-SCAMP | 7 | over 9 years ago | : scalable membership protocol |
rtc-SCAMP-mbr | 2 | over 9 years ago | : scalable membership protocol |
network | 6 | almost 10 years ago | : arbitrary network implementations between clients |
BoundedBroadcastDefinition | 1 | over 9 years ago | : broadcasting component on top of communication overlay |
discover | 69 | about 9 years ago | : distributed master-less node discovery |
k-bucket | 156 | over 1 year ago | : DHT k-bucket implementation |
gossipmonger | 51 | about 11 years ago | : real-time replication with scuttlebutt |
kadoh | 242 | almost 11 years ago | : kademlia over HTTP |
kademlia-dht | 67 | over 2 years ago | : DHT |
kademlia | 142 | over 5 years ago | : kademlia |
dhtkv | 63 | almost 9 years ago | : cli for bittorrent storing values in mainline torrent DHT |
abstract-peer-routing | 12 | over 4 years ago | : a test suite for implementing peer routing in libp2p |
abstract-record-store | 9 | over 4 years ago | : a test suite to implement in IPFS record store |
libp2p-swarm | 47 | about 5 years ago | : IPFS swarm implementation |
libp2p-kad-routing | 9 | over 6 years ago | : IPFS Kademlia routing |
libp2p-kad-record-store | 4 | over 6 years ago | : IPFS Kademlia record store |
libp2p-distributed-record-store | 7 | over 6 years ago | : IPFS distributed record store |
libp2p-record | 7 | over 6 years ago | : IPFS record object |
libp2p-railing | 30 | about 1 year ago | : railing of a Node through a bootstrap peer list |
libp2p-random-walk | : peer discovery via a DHT random walk | ||
libp2p-mdns-discovery | 51 | over 1 year ago | : peer discovery via mDNS |
libp2p-utp | 12 | 10 months ago | : node uTP implementation |
libp2p-spdy | 10 | over 3 years ago | : multistream into Stream Multiplexing |
libp2p-udt | 3 | 10 months ago | : node UDT implementation |
libp2p-udp | 7 | 10 months ago | : node UDP implementation |
libp2p-tcp | 76 | over 1 year ago | : TCP implementation of abstract transport interface |
peer-info | 37 | over 4 years ago | : IPFS peer abstraction |
peer-id | 81 | 10 months ago | : IPFS peer id |
peer-book | 16 | almost 5 years ago | : Peer Store for libp2p and IPFS |
muxrpc | 99 | about 1 year ago | : multiplexed rpc |
secret-stack | 90 | 11 months ago | : connect peers using secret handshakes |
ssb-feed | 15 | almost 6 years ago | : secure scuttlebutt feed |
mdns | 870 | 9 months ago | : discover services on your local network |
append-only-torrent | : create a sequence of torrent files for growing input | ||
fully-connected-topology | 58 | almost 9 years ago | : create a fully connected topology (mesh) |
blockcast | 55 | about 9 years ago | : protocol for storing data in bitcoin blockchains |
hive.js | 16 | about 1 year ago | : browser-to-browser distributed cache for video using WebRTC |
ipscend | 263 | about 5 years ago | : deploy and host web apps on IPFS |
babel-routing-protocol | : routing over p2p mesh | ||
webdht | 16 | over 6 years ago | |
butter | 4,291 | about 4 years ago | : free parts of popcorn time |
merkle-patricia-tree | 306 | almost 4 years ago | : as documented by Ethereum |
rtc-data-stream | 43 | about 7 years ago | : convert a WebRTC data channel into a stream |
peermesh | 118 | almost 2 years ago | : p2p file transfer using WebRTC |
peertransfer | 323 | 7 months ago | : sends files p2p securely in the browser |
merkle-stream | 103 | over 2 years ago | : generate a merkle tree from streamed data |
discovery-channel | 299 | almost 3 years ago | : search for a key across multiple discovery networks |
anonymous-networks | 1,636 | over 3 years ago | : distributed, p2p chat app using IPFS |
hyperdrive | 1,868 | 14 days ago | : A file sharing network based on rabin file chunking and append only feeds of data verified by merkle trees |
webrtc-connect | 17 | almost 9 years ago | : Establish WebRTC Data Channels between browser-node and node-node with a TCP/HTTP/WebSockets "createServer/attach" like interface |
discovery-network | 31 | about 12 years ago | : a p2p discovery network |
rtc-stream | 14 | almost 7 years ago | : Webrtc using regular node streams |
viraljs | 962 | over 8 years ago | : p2p distribution of apps |
wrtc-ice-cand-parse | 8 | almost 9 years ago | : WRTC Ice Candidate parse |
deejay | 126 | almost 9 years ago | : Music player that broadcasts to everyone on the same network |
osm-p2p-db | 237 | over 6 years ago | : p2p database for open street map data |
dns-discovery | 193 | over 2 years ago | : Discovery peers in a distributed system using regular dns and multicast dns |
k-rpc-socket | 23 | almost 2 years ago | : Low level implementation of the k-rpc network layer that the BitTorrent DHT uses |
ucat | 6 | over 8 years ago | : ucat(uTP cat) implementation in JavaScript to be used with Node.js |
k-rpc | 74 | almost 2 years ago | : Low-level implementation of the k-rpc protocol used the BitTorrent DHT |
osm-p2p-server | 86 | over 3 years ago | : serve open street map 0.6 api endpoints over a local p2p http server |
secure-webrtc-swarm | 2 | almost 9 years ago | : with whitelisting and encryption |
node-ice | 34 | almost 9 years ago | : Interactive Connectivity Establishment (ICE) (RFC 5245) for Node.js |
node-rtc-peer-connection | 154 | over 8 years ago | : RTCPeerConnection for Node.js |
ipfs-merkle-dag | 1 | over 8 years ago | : IPFS Merkle DAG JavaScript Implementation |
ipfs-blocks | 13 | over 3 years ago | : JavaScript Implementation of Block and BlockService |
electron-webrtc | 317 | almost 7 years ago | : Use WebRTC in Node.js via a hidden Electron process |
peerweb.js | 198 | almost 7 years ago | : A client side library for fetching and rendering a static website from a torrent |
webcoin | 412 | almost 3 years ago | : SPV Bitcoin client for Node.js and the browser |
swarmlog | : create a p2p webrtc swarm around a hyperlog | ||
discovery-swarm | 375 | over 4 years ago | : A network swarm that uses discovery-channel to find peers |
discovery-server | 58 | about 7 years ago | : A tcp/utp server that auto announces itself using discovery-channel |
ipfs-hyperlog | 57 | almost 7 years ago | : IPFS Merkle DAG that replicates based on scuttlebutt logs and causal linking |
karma-peer | 3 | over 8 years ago | : Test p2p apps in multiple browsers with karma |
nuTorrent | 233 | about 9 years ago | : A Pure Javascript BitTorrent Client |
hyperlog-seed | : seed content hashes embedded in a hyperlog | ||
peer-tweet | 879 | over 8 years ago | : Decentralized feeds using BitTorrent's DHT |
torrent-worker | 10 | over 4 years ago | : 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 | 152 | over 7 years ago | : 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 | 289 | over 1 year ago | : Get free, randomized STUN and TURN servers for your WebRTC application |
web-to-dat | 12 | over 8 years ago | : Clone a website and share with dat |
webtorrent-cli | 1,173 | 13 days ago | : WebTorrent, the streaming torrent client. For the command line |
ipfs-data-importing | 22 | over 4 years ago | : JavaScript implementation of the layout and chunking mechanisms used by IPFS |
chatwizard | : p2p webrtc chatroom client | ||
js-gossip-cyclon | 45 | over 8 years ago | : Cyclon Gossip: (P2P membership management) in Javascript |
CheckWebPeer | 19 | over 8 years ago | : Check WebRTC peers of torrents |
hyperdrive-archive-stream | 25 | almost 8 years ago | : Join the p2p swarm for a given hyperdrive archive |
hyperirc | 70 | almost 7 years ago | : Read IRC through hypercore |
spellcast | : p2p live streaming in the browser | ||
orbit | 1,636 | over 3 years ago | : Distributed peer-to-peer chat application on IPFS |
orbit-db | 5 | almost 2 years ago | : Distributed peer-to-peer database on IPFS |
peer-network | 184 | over 7 years ago | : Create servers/clients that listen on names instead of ports and hostnames and are accessible over the internet |
resilient-swarm | 73 | about 7 years ago | : An efficient, secure, and reliable WebRTC swarm |
hyperdht | 95 | about 6 years ago | : dht based on kademlia, with a focus on extensibility + modularity |
hypercore-dag | 24 | about 8 years ago | : DAGs on top of hypercore, allowing verified random-access to graph nodes |
hypercore-archiver | 71 | almost 6 years ago | : A hypercore peer that will backup multiple hypercores/hyperdrives efficiently to disk |
hyperarchiver | 13 | about 7 years ago | : Host, backup, and share hyperdrive archives |
hyperpipe | 119 | over 7 years ago | : Distributed input/output pipe |
hypername | 36 | about 8 years ago | : Distributed name server |
hyperreduce | 17 | about 8 years ago | : Distributed reduce on top of hypercore |
hyperfilter | 33 | about 8 years ago | : Distributed map and filter |
normcore | 28 | almost 8 years ago | : No-config distributed streams using hypercore |
hyperfeed | 69 | over 7 years ago | : p2p rss publishing |
hyperdiscovery | 135 | almost 3 years ago | : Join the swarm for a given hypercore or hyperdrive feed |
dht-rpc | 196 | about 2 months ago | : Make RPC calls over a Kademlia based DHT |
hyperdrive-multiwriter | : present a bundle of hyperdrive archives together as a multi-writer view | ||
hyperhealth | 39 | over 5 years ago | : Monitor the health of a hyperdrive or dat, including peer count and peer mirror percentages |
assassin | 78 | about 4 years ago | : Store key-value pairs in a decentralized NoSQL database built with |
hyperlapse | 23 | almost 8 years ago | : Distributed process manager |
voter | 15 | about 11 years ago | : Distributed voting based on Scuttlebutt |
hyper-string | 39 | almost 7 years ago | : p2p conflict-free string primitive |
hyperhost | 48 | about 6 years ago | : P2P Node Servers in the Browser |
hypertweet | 71 | over 7 years ago | : concept tweet -> hypercore thingy |
nile.js | 1,768 | about 6 years ago | : Scalable peer to peer live video streaming built on torrents and webRTC |
chatmesh | : p2p chat using hyperdb | ||
SIP.js | 1,898 | 5 months ago | : A simple, intuitive, and powerful JavaScript signaling library |
noise-network | 97 | over 5 years ago | : Authenticated P2P network backed by HyperSwarm and NOISE |
Peer-to-Peer / Libraries | |||
libwebrtc | 57 | about 9 years ago | : companion to |
p2p | 316 | almost 9 years ago | : browser JS library |
SimpleWebRTC | 4,656 | over 2 years ago | : browser JS library |
signalmaster | 1,305 | about 4 years ago | : signaling server for |
rfc5766-turn-server | 521 | about 9 years ago | |
coturn | 11,418 | 6 days ago | : next evolution of the rfc5766-turn-server project |
peerjs | 12,476 | 7 days ago | : simple peer-to-peer with WebRTC |
go-peerstream | 56 | about 7 years ago | : P2P multi-multiplexing in Go |
ipfs | 22,726 | 10 months ago | : distributed file system |
ipfs specs | 1,165 | 16 days ago | : specs for IPFS |
ipget | 394 | 5 days ago | : wget for IPFS |
btfs | 3,889 | 3 months ago | : bittorrent filesystem based on FUSE (C++) |
swarmbot | : mirroring for a p2p mesh of swarmlogs | ||
p2p-graph | 286 | over 3 years ago | : Real-time P2P network visualization with D3 |
planktos | 539 | over 4 years ago | : Serving websites over bittorrent |
dat | 8,247 | over 1 year ago | : Sync data across the distributed web |
Netflux | 213 | almost 3 years ago | : full mesh network of clients and/or servers |
libdatachannel | 1,802 | 4 days ago | : WebRTC DataChannels standalone implementation (C++) |
Peer-to-Peer / Apps | |||
whiteboard | 156 | about 5 years ago | |
friends | 3,167 | about 6 years ago | : P2P chat |
openbazaar | : decentralized marketplace: | ||
ipfsbin | 133 | over 8 years ago | : Run IPFS snippets |
patchwork | 3,585 | over 3 years ago | : p2p secure messaging |
webtorrent-app | 9,732 | 9 days ago | : WebTorrent, the streaming torrent client. For OS X, Windows, and Linux |
snapdrop | 18,373 | 3 months ago | : A HTML5 clone of Apple's AirDrop |
peerweb | 118 | over 4 years ago | : PeerWeb browser |
beaker | 6,752 | almost 2 years ago | : Decentralization tech in a browser built with electron |
PeerFast | 103 | over 3 years ago | : |
ferment | : Peer-to-peer audio sharing and streaming application. Like SoundCloud but decentralized. A mashup of ssb, webtorrent and electron | ||
roll-call | 1,568 | about 7 years ago | : Free and reliable audio calls for everyone w/ browser p2p |
cache-p2p | 865 | almost 3 years ago | : CacheP2P is a highly distributed cache platform based on WebTorrent and runs only in the browser |
dropub | 219 | almost 2 years ago | : P2P publishing for everyone. Dropbox meets BitTorrent |
norcal | : P2P calendaring | ||
hyperpad | 200 | almost 7 years ago | : P2P collaborative text editor |
Peer-to-Peer / Experiments | |||
torrent-log | : message feed over bittorrent | ||
GitTorrent | 4,747 | over 4 years ago | : A decentralization of Github using BitTorrent and Bitcoin |
webrtc-ips | 3,439 | 11 months ago | : Stun IP address requests for WebRTC |
web2web | 2,254 | about 1 year ago | : P2P web powered by torrents and blockchain |
Peer-to-Peer / Workshops | |||
chat-room-server-and-p2p | : workshop example creating a websocket chat room replaced with p2p version using webrtc | ||
p2p-file-sharing-workshop | 88 | over 7 years ago | : Learn about distributed file sharing through a series of fun and exciting exercises |
Peer-to-Peer / Companies | |||
Greta | |||
peer5 | |||
hive streaming | |||
Streamroot | |||
Peer-to-Peer / Resources | |||
bittorrent spec | : BitTorrent specification | ||
magnet URI scheme | |||
WebRTC infrastructure | |||
Getting Started | |||
rtc.io | |||
webtorrent.io | : webtorrents for NodeJS and the browser | ||
chord | |||
webrtc-ring | : resource discovery | ||
P2P design | : Dominic Tarr on P2P design issues | ||
webgc | : gossiping | ||
topology | 57 | over 11 years ago | : different network topologies |
gossip | |||
membership management | |||
ipfs | 147 | almost 2 years ago | |
dynamic search | |||
p2pweb | 22 | over 10 years ago | : Create a web where web pages are published/shared in a P2P fashion |
bitweb | 30 | almost 9 years ago | : websites sharing using bittorrent |
p2p handbook | 129 | over 4 years ago | : introductory handbook on p2p tech & javascript |
Peer-to-Peer / Other | |||
fill-disk | |||
brickhouse | 6 | almost 6 years ago | : security focused desktop applications |
bigchaindb | 4,034 | 5 months ago | : A scalable blockchain database |
Peer-to-Peer / People | |||
mafintosh | |||
feross | |||
substack | |||
dominictarr | |||
maxogden | |||
jbenet | |||
diasdavid | |||
pfraze | |||
perguth | |||
nickdesaulniers | |||
noffle |