In-browser secure peer-to-peer filetransfer in three simple steps:
- Select the file you want to send.
- Open the generated link on other PCs.
- Download over a direct, authenticated and end-to-end encrypted line.
Thus the file will only be available for download as long as the sender keeps his browser tab open.
- Data is sent directly peer-to-peer.
- Data is transferred using end-to-end encryption (due to WebRTC).
- The messages that are relayed by a server to initiate the p2p WebRTC connections are encrypted (to protect against IP leakages and man-in-the-middle attacks while initiating WebRTC).
A hosted instance of Peertransfer is available at https://perguth.github.io/peertransfer/
git clone https://github.com/pguth/peertransfer.git
cd peertransfer
NODE_ENV=production npm install
# You can also set HUB_URLS to a comma separated list of `signalhub` URLs:
npm start
Or you can use npm run build
to generate static files.
- A variation of Peertransfer I wrote: peermesh
- sharedrop "HTML5 clone of Apple's AirDrop - easy P2P file transfer powered by WebRTC"
- ShareFest "Web based p2p file sharing built on WebRTC Data Channels API"
- serverless-webrtc "A demo of using WebRTC with no signaling server."
- WebTorrent "Streaming torrent client for node & the browser"
- OnionShare "Securely and anonymously share a file of any size"
- FilePizza "Peer-to-peer file transfers in your browser"
- HTML/CSS of this project are forked from Creating a File Encryption App with JavaScript (license: "You can use, modify and build upon our code for your (or your clients’) personal and commercial projects with no attribution necessary.").