Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pguth/peermesh
:dizzy: • Exchange files p2p and e2e encrypted over a fully meshed network in your browser using WebRTC.
https://github.com/pguth/peermesh
encrypted mesh-networks p2p transfer webrtc
Last synced: 3 months ago
JSON representation
:dizzy: • Exchange files p2p and e2e encrypted over a fully meshed network in your browser using WebRTC.
- Host: GitHub
- URL: https://github.com/pguth/peermesh
- Owner: perguth
- License: mit
- Created: 2015-09-29T20:05:42.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-02-19T20:10:38.000Z (over 1 year ago)
- Last Synced: 2024-05-22T18:15:14.452Z (6 months ago)
- Topics: encrypted, mesh-networks, p2p, transfer, webrtc
- Language: JavaScript
- Homepage: https://perguth.de/peermesh
- Size: 894 KB
- Stars: 118
- Watchers: 6
- Forks: 16
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-peer-to-peer - peermesh
- awesome-peer-to-peer - peermesh
README
# peermesh
> Start a **fully meshed network** by passing on the generated link and share files **peer-to-peer** and **end-to-end encrypted** powered by WebRTC!
- [x] Works fully in the browser using `WebRTC`.
- [x] Mesh swarms can be started by opening the site. A "mesh URL" is generated to be passed around.
- [x] The mesh URL contains a password. All files mesh will be sent `end-to-end encrypted`.
- [x] Swarms can be joined by opening the mesh URL.
- [x] Swarm form fully meshed networks (n:n) using [`webrtc-swarm`](https://github.com/mafintosh/webrtc-swarm).
- [x] WebRTC signaling data is exchanged via [`signalhub`](https://github.com/mafintosh/signalhub).
- [x] Swarm URLs can be bookmarked and reused. `trust on first use: encryption keys`
- [ ] You see when the source code changes because of [`hyperboot`](https://github.com/substack/hyperboot). `trust on first use: source code`Files will \*not\* be propagated among peers. The peers that initates a transfer will send the file to every connected peer individually.
Combining trust on first use both for encryption keys \*and\* source code will help you [defeat Sauron](http://holgerkrekel.net/2013/10/26/defating-sauron-with-the-trust-on-first-use-principle/)!
## Installation
```sh
git clone https://github.com/pguth/peermesh.git
cd peermesh
npm install# You need a signaling server running:
npm install -g signalhub
signalhub listen -p 7000# Now serve peermesh:
npm run build # and then open `public/index.html` in your browser or
npm start # to start the development server on `http://localhost:9966`
```## Related
- [`peertransfer`](https://github.com/pguth/peertransfer)
Peertransfer is a (1:n) WebRTC based file transfer tool. Compared to `peermesh` it encodes a authentication code into the "sharing URL" that is passed around and will not initiate WebRTC signaling if the code is missing or wrong.## Credits
- [Encrypt and decrypt content with Nodejs](http://lollyrock.com/articles/nodejs-encryption/) `crypto`
- [JavaScript File Encrypter](http://tutorialzine.com/2013/11/javascript-file-encrypter/) `design`