JavaScript P2P

Open-source JavaScript projects categorized as P2P

Top 23 JavaScript P2P Projects

  • webtorrent

    ⚡️ Streaming torrent client for the web

    Project mention: Streaming fine of 1500EUROS. | reddit.com/r/germany | 2023-01-25

    I stand corrected. https://webtorrent.io/ is a mediaclient implement in js which uses the BitTorrent protocol.

  • ZeroNet

    ZeroNet - Decentralized websites using Bitcoin crypto and BitTorrent network

    Project mention: Professor of law, Bruce Pardy on Trudeau's upcoming internet censorship in 2023. | reddit.com/r/Canada_sub | 2023-01-11

    Nothing can be censored here. Nothing. https://zeronet.io. read that again. Nothing can be censored because it is 100% decentralized, that is the opposite of centralized power.

  • Appwrite

    Appwrite - The Open Source Firebase alternative introduces iOS support . Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!

  • gun

    An open source cybersecurity protocol for syncing decentralized graph data.

    Project mention: Meet OctoBase - AFFiNE's local-first, collaborative open-source database! | reddit.com/r/rust | 2023-01-31
  • yjs

    Shared data types for building collaborative software

    Project mention: Hindsight is a free and open-source retrospective board | reddit.com/r/javascript | 2023-01-07

    No back-end. Data is shared via WebRTC directly between connected browsers. I'm using Yjs to help me with that.

  • webtorrent-desktop

    ❤️ Streaming torrent app for Mac, Windows, and Linux

    Project mention: Opinião: Qual e o melhor serviço de streamings pra vocês atualmente? | reddit.com/r/brasil | 2023-01-19
  • orbit-db

    Peer-to-Peer Databases for the Decentralized Web

    Project mention: orbit-db VS db3 - a user suggested alternative | libhunt.com/r/orbit-db | 2023-01-15
  • ipfs

    IPFS implementation in JavaScript

    Project mention: How to store your app's entire state in the url | news.ycombinator.com | 2023-01-09

    Store the content in ipfs and just put the hash in the URL? I haven't used https://github.com/ipfs/js-ipfs in this capacity but I'm under the impression that that's what it's supposed to do.

  • Sonar

    Write Clean JavaScript Code. Always.. Sonar helps you commit clean code every time. With over 300 unique rules to find JavaScript bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.

  • simple-peer

    📡 Simple WebRTC video, voice, and data channels

    Project mention: WebTorrent | news.ycombinator.com | 2022-11-29

    Disclosure: I'm the author of WebTorrent.

    It's so fulfilling to see WebTorrent still popping up on Hacker News after all these years. I started the project in 2013 and devoted most of my 20s to working on it, ultimately becoming a full-time open source maintainer, and writing hundreds of npm packages including buffer (https://github.com/feross/buffer), simple-peer (https://github.com/feross/simple-peer), and StandardJS (https://standardjs.com/).

    I started WebTorrent with the goal of extending the BitTorrent protocol to become more web-friendly, allowing any browser to become a peer in the torrent network. Within less than a year of starting the project, I got WebTorrent fully working. And it worked _well_, beating many native torrent apps in terms of raw download speed and the ability to stream videos within seconds of adding a torrent.

    WebTorrent never got as much attention as the cryptocurrency projects selling tokens throughout the mid-2010s, even though WebTorrent actually worked and had more real users than almost all of them :) I was never tempted to add a crypto-token to WebTorrent, despite many well-meaning friends telling me to do it. Nonetheless, WebTorrent served as an accessible on-ramp to the world of decentralized tech, along with other projects like Dat (https://dat-ecosystem.org/) and Secure Scuttlebutt (https://scuttlebutt.nz/).

    But WebTorrent is more than a protocol extension to BitTorrent. We built a popular desktop torrent client, WebTorrent Desktop (https://webtorrent.io/desktop/), which supports powerful features like instant video streaming.

    We also build a `webtorrent` JavaScript package (see https://socket.dev/npm/package/webtorrent) which implements the full BitTorrent/WebTorrent protocol in JavaScript. This implementation uses TCP, UDP, and/or WebRTC for peer-to-peer transport in any environment – whether Node.js (TCP/UDP), Electron (TCP/UDP/WebRTC), or the web browser (WebRTC). In the browser, the `webtorrent` package uses WebRTC which doesn’t require a browser plugin, extension, or any kind of installation to work.

    If you’re building a website and want to fetch files from a torrent, you can use `webtorrent` to do that directly client-side, in a decentralized manner. The WebTorrent Workshop (https://webtorrent.github.io/workshop/) is helpful for getting started and teaches you how to download and stream a torrent into an HTML page in just 10 lines of code.

    Now that WebTorrent is fully supported in nearly all the most popular torrent clients, including uTorrent, dare I say that we succeeded? It's been a long and winding journey, but I'm glad to have played a role in making this happen. Special shoutouts to all the open source contributors over the years, especially Diego R Baquero, Alex Morais,

    P.S. If you're curious what I'm up to now, I'm building Socket (https://socket.dev). And there's actually a WebTorrent connection, too. Socket came out of a prior product we built called Wormhole (https://wormhole.app), an end-to-end encrypted file transfer application built using WebTorrent under-the-hood (Show HN thread: https://news.ycombinator.com/item?id=26666142). Like Firefox Send before it, security was a primary goal of Wormhole (see security details here: https://wormhole.app/security). But one area where we were lacking was in how we audited our open source dependencies. Like most teams building a JavaScript app, we had a large node_modules folder filled with lots of constantly updating third-party code. The risk of a software supply chain attack was huge, especially with 30% of our visitors coming from China. As most teams do, we enforced code review for all our first-party code. But similar to most teams, we were pulling in third-party dependencies and dependency updates without even glancing at the code (this is something that almost every company does today). We knew we needed to do better for our users. We looked around for a solution to analyze the risk of open source packages but none existed. So we decided to build Socket.

    Socket helps developers ship faster and spend less time on security busywork by helping them safely find, audit, and manage OSS. Socket provides a comprehensive open source risk analysis. By analyzing the full picture – from maintainers and how they behave, to open-source codebases and how they evolve – we enable developers and security teams to identify risk from malware, hidden code, typo-squatting, misleading packages, permission creep, unmaintained or abandoned packages, and poor security practices. For one quick example, take a look at the risks we identified in this Angular.js calendar library: https://socket.dev/npm/package/angular-calendar/issues/0.30....

  • beaker

    An experimental peer-to-peer Web browser

    Project mention: Ask HN: Those making $0/month or less on side projects – Show and tell | news.ycombinator.com | 2023-01-27

    it sounds a lot like you're reinventing what Beaker Browser had built on top of DAT, except that it could do more. For example, they made a distributed Twitter clone as a proof of concept, but folks actually started using it. Definitely included blogging stuff.

    Really cool stuff around taking sites and things other folks had built and using them as a basis for your new thing.

    https://github.com/beakerbrowser/beaker/

  • ipfs-desktop

    An unobtrusive and user-friendly desktop application for IPFS on Windows, Mac and Linux.

    Project mention: Can anyone tell me here, how can i open ipfs links on my Brave browser ? I had done everything, but it still it is not opening. | reddit.com/r/IPFS_Hashes | 2022-12-10
  • instant.io

    🚀 Streaming file transfer over WebTorrent (torrents on the web)

    Project mention: Whats the best alternative for Airdrop if you wanna transfer files between non Apple devices? | reddit.com/r/techsupport | 2022-12-31

    Option #2 https://instant.io/ (unlimited size - uses WebTorrent)

  • ipfs-companion

    Browser extension that simplifies access to IPFS resources on the web

    Project mention: Can anyone tell me here, how can i open ipfs links on my Brave browser ? I had done everything, but it still it is not opening. | reddit.com/r/IPFS_Hashes | 2022-12-10
  • ufonet

    UFONet - Denial of Service Toolkit

  • mirotalk

    🚀 WebRTC - P2P - Simple, Secure, Fast Real-Time Video Conferences Up to 4k and 60fps, compatible with all browsers and platforms.

    Project mention: Free Secure WebRTC P2P/SFU/C2C Video Calls, Screen Sharing, File Sharing, Chat and more. | reddit.com/r/javascript | 2023-02-02

    Hello teleden, Every time I post something, there's always someone asking the same question as you :) You can try the all my live demo versions and see the diffs: MiroTalk P2P GitHub: https://github.com/miroslavpejic85/mirotalk Demo: https://p2p.mirotalk.com/ MiroTalk SFU GitHub: https://github.com/miroslavpejic85/mirotalksfu Demo: https://sfu.mirotalk.com/ MiroTalk C2C GitHub: https://github.com/miroslavpejic85/mirotalkc2c Demo: https://c2c.mirotalk.com/ I think it's just a matter of personal tastes...! Thank you!

  • ipfs-webui

    A frontend for an IPFS node.

    Project mention: I wish I could "seed" a server like a torrent, has there been any work to make this possible? | reddit.com/r/Mastodon | 2022-11-12

    webui.ipfs.io

  • bittorrent-dht

    🕸 Simple, robust, BitTorrent DHT implementation

    Project mention: Static torrent website with peer-to-peer queries over BitTorrent on 2M records | news.ycombinator.com | 2022-03-08

    I'm not talking about the consensus protocol of the blockchain itself, but of the p2p algorithms underlying it, e.g. using Kademlia for service discovery and message routing. I'm asking why a distributed system would choose something like Consul (which uses Raft, and requires a coordinator node) instead of running a decentralized protocol like Kademlia (which has no coordinator nodes) within their distributed single-tenant environment.

    I did a bit more research last night, and discovered that Bitfinex actually does something like this internally (anyone know if this is up to date?) [0] — they built a service discovery mesh by storing arbitrary data on a DHT implementing BEP44 (using webtorrent/bittorrent-dht [1]).

    This seems pretty cool to me, and IMO any modern distributed system should consider running decentralized protocols to benefit from their robustness properties. Deploying a node to a decentralized protocol requires no coordination or orchestration, aside from it simply joining the network. Scaling a service is as simple as joining a node to the network and announcing its availability of an implementation of that service.

    At first glance, this looks like a competitive advantage, because it decouples the operational and maintenance costs of the network from the size of the network.

    So I'm wondering if there is a consistent tradeoff in exchange for this robustness — are decentralized applications more complex to implement but simpler to operate? Is latency of decentralized protocols (e.g. average number of hops to lookup item in a DHT) untenably higher than that of distributed protocols (e.g. one hop once to get instructions from coordinator, then one hop to lookup item in distributed KV)? Does a central coordinator eliminate some kind of principle agent problem, resulting in e.g. a more balanced usage of the hashing keyspace?

    Decentralization emerged because distributed solutions fail in untrusted environments — but this doesn't mean that decentralized solutions fail in trusted environments. So why not consider more decentralized protocols to scale internal systems?

    [0] https://github.com/bitfinexcom/grenache

    [1] https://github.com/webtorrent/bittorrent-dht

  • aether

    Aether client app with bundled front-end and P2P back-end

    Project mention: Peer-to-peer ephemeral public communities | news.ycombinator.com | 2023-01-23
  • webtorrent-cli

    WebTorrent, the streaming torrent client. For the command line.

    Project mention: automate creating torrents and sharing them ? | reddit.com/r/torrents | 2022-12-14

    there's torrent cli clients like https://github.com/webtorrent/webtorrent-cli

  • CacheP2P

    "More users = More capacity"

  • FileNation

    The simplest way to send your files around the world using IPFS. ✏️ 🗃

  • cabal-desktop

    Desktop client for Cabal, the p2p/decentralized/local-first chat platform.

    Project mention: I built a tiny slack alternative for the decentralized web | reddit.com/r/Rad_Decentralization | 2022-11-29
  • openbazaar-desktop

    OpenBazaar 2.0 Desktop Client (talks to openbazaar-go server daemon)

    Project mention: IPFS Marketplace - the future of shopping? | reddit.com/r/ipfs | 2022-08-23

    Idk but you might want to check out Open Bazaar. Seems like development has stopped though.

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-02-02.

JavaScript P2P related posts

Index

What are some of the best open-source P2P projects in JavaScript? This list will help you:

Project Stars
1 webtorrent 27,459
2 ZeroNet 17,783
3 gun 16,858
4 yjs 10,437
5 webtorrent-desktop 9,121
6 orbit-db 7,437
7 ipfs 7,260
8 simple-peer 6,652
9 beaker 6,642
10 ipfs-desktop 4,882
11 instant.io 3,187
12 ipfs-companion 1,841
13 ufonet 1,758
14 mirotalk 1,565
15 ipfs-webui 1,385
16 rats-search 1,210
17 bittorrent-dht 1,125
18 aether 1,101
19 webtorrent-cli 905
20 CacheP2P 867
21 FileNation 851
22 cabal-desktop 775
23 openbazaar-desktop 641
Build time-series-based applications quickly and at scale.
InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.
www.influxdata.com