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