Skip to content

Instantly share code, notes, and snippets.

@SMUsamaShah
Last active November 25, 2025 15:38
Show Gist options
  • Select an option

  • Save SMUsamaShah/fd6e275e44009b72f64d0570256bb3b2 to your computer and use it in GitHub Desktop.

Select an option

Save SMUsamaShah/fd6e275e44009b72f64d0570256bb3b2 to your computer and use it in GitHub Desktop.
List of P2P file sharing tools

Browser Based

  1. Web Wormhole https://webwormhole.io/ https://github.com/saljam/webwormhole
  2. Localsend https://web.localsend.org/
  3. FilePizza https://file.pizza/
  4. ShareDrop sharedrop.io https://github.com/szimek/sharedrop (SOLD, not recommended, use one of the forks)
    1. A clone SnapDrop snapdrop.net https://github.com/RobinLinus/snapdrop (SOLD, not recommended, use one of the forks)
      1. A fork PairDrop https://pairdrop.net/ https://github.com/schlagmichdoch/pairdrop
  5. ToffeeShare https://toffeeshare.com/
  6. Instant.io https://instant.io/
  7. FileTC https://file.tc/
  8. Send Anywhere https://send-anywhere.com/
  9. Just Beaam it https://www.justbeamit.com/
  10. Peermesh https://perguth.de/peermesh https://github.com/perguth/peermesh
  11. drop.lol https://drop.lol/ https://github.com/mat-sz/filedrop
  12. rDrop https://rdrop.link/
  13. AirDelivery https://airdelivery.site/
  14. Blaze https://blaze.vercel.app/ https://github.com/blenderskool/blaze
  15. SendFiles https://sendfiles.dev/ https://github.com/jchorl/sendfiles
  16. Katana https://sekky61.github.io/Katana/ https://github.com/Sekky61/Katana
  17. FileLove https://file.love/ https://github.com/midzer/filelove
  18. Filegogo https://send.22333.fun/ https://github.com/a-wing/filegogo
  19. Peertransfer https://github.com/perguth/peertransfer https://perguth.de/peertransfer/
  20. Yt2fb.in https://yt2fb.in/file-transfer/
  21. P2P File Transfer https://chidokun.github.io/p2p-file-transfer/ https://github.com/chidokun/p2p-file-transfer
  22. P2P File Transfer https://webbrowsertools.com/p2p-file-transfer/ https://github.com/leocompson/p2p-file-transfer
  23. NeighborHoodShare https://neighbor-share.vercel.app/ https://github.com/dikshantrajput/neighborHoodShare
  24. Vegh https://vegh.netlify.app/ https://github.com/veghfile
  25. P2P File Sharing https://taonexus.com/p2pfilesharing/

TODO

  • Test which of these tools can send very large (10GB+) files without freezing/crashing the browser.

CLI

  1. croc https://github.com/schollz/croc
  2. p2pcopy https://github.com/psantosl/p2pcopy
  3. pcp https://github.com/dennis-tra/pcp
  4. wormhole-william https://github.com/psanford/wormhole-william
  5. Wush https://github.com/coder/wush
  6. sendme https://www.iroh.computer/sendme https://github.com/n0-computer/sendme
  7. B·o·B https://bob.osau.re/ https://github.com/dinosaure/bob

(Updated the list based on comments. Only keeping p2p tools)

@medy17
Copy link

medy17 commented Sep 4, 2025

Someone should add dropsilk.xyz

@SMUsamaShah
Copy link
Author

Just a note that many new entries are looking very similar for some reason, and also giving off similar vibes with their privacy/terms/about sections. Same goes for the UI, also for the domain names. Some look like they have been made very recently.

@SMUsamaShah
Copy link
Author

I also tried testing some of the browser ones. Web Wormhole and very few others were the only ones which start downloading the file immediately (to the file system, your browser will show a file being downloaded) and I think these shouldn't crash on very large files (multi GBs). Most other tools download the file in browser (memory? cache?), and only when the download is complete, it's saved as a file.

@SMUsamaShah
Copy link
Author

Hello! I developed p2party.com which creates WebRTC rooms and does file transfers in the browser. You can find the relevant source code at github.com/p2party/p2party-js

Hi, this has been hard to use. I don't understand the UI. I opened two tabs in same browser, also in different browsers using same url. I couldn't see a connection between two peers. Kept saying waiting for peers.

@tionis
Copy link

tionis commented Sep 5, 2025

I also tried testing some of the browser ones. Web Wormhole and very few others were the only ones which start downloading the file immediately (to the file system, your browser will show a file being downloaded) and I think these shouldn't crash on very large files (multi GBs). Most other tools download the file in browser (memory? cache?), and only when the download is complete, it's saved as a file.

Which ones do streaming of files in your testing beside web wormhole?

@medy17
Copy link

medy17 commented Sep 5, 2025

Which of the newer ones have all of you found to be easier to use?

@fuzzc0re
Copy link

fuzzc0re commented Sep 6, 2025

Hello! I developed p2party.com which creates WebRTC rooms and does file transfers in the browser. You can find the relevant source code at github.com/p2party/p2party-js

Hi, this has been hard to use. I don't understand the UI. I opened two tabs in same browser, also in different browsers using same url. I couldn't see a connection between two peers. Kept saying waiting for peers.

It needs two browsers to create a connection because I store some user identifiable info in localstorage and if you use two tabs in the same browser it will be like trying to create p2p session with one peer.
If however you were not able to connect with two browsers then it would be very helpful if you can send me a screenshot of your console in the browser dev tools in a PM if you like.

The streaming part cannot happen in p2party's case because of the crypto algorithm that I use which splits the file into chunks. The chunks are also sent in random order so it cannot create a stream.

@itsrajeshverma
Copy link

Visit https://fileveda.com
to securely send and receive files simultaneously.

@hasanalt
Copy link

hasanalt commented Oct 9, 2025

I also tried testing some of the browser ones. Web Wormhole and very few others were the only ones which start downloading the file immediately (to the file system, your browser will show a file being downloaded) and I think these shouldn't crash on very large files (multi GBs). Most other tools download the file in browser (memory? cache?), and only when the download is complete, it's saved as a file.

Zetashare doesn't crash with large files; it writes directly to the file system and supports multiple simultaneous downloads. Unlike other P2P platforms, it never exposes your file names or sizes to the server — zero metadata.

@medy17
Copy link

medy17 commented Oct 9, 2025

I also tried testing some of the browser ones. Web Wormhole and very few others were the only ones which start downloading the file immediately (to the file system, your browser will show a file being downloaded) and I think these shouldn't crash on very large files (multi GBs). Most other tools download the file in browser (memory? cache?), and only when the download is complete, it's saved as a file.

Zetashare doesn't crash with large files; it writes directly to the file system and supports multiple simultaneous downloads. Unlike other P2P platforms, it never exposes your file names or sizes to the server — zero metadata.

Dropsilk has an OPFS option in the settings? (see image) Seems like quite a few CAN download directly to the system. I remember FilePizza being one of them too.
image

@abacabadabacaba
Copy link

Using OPFS probably means that a copy of all file data is stored in the browser storage. If the file is large, the user may not have enough storage space for an extra copy. Therefore, it would be preferable if the data could be directly streamed to the final destination, without storing it in OPFS first.

@sannam-wesco
Copy link

Hi, thanks for creating this awesome list! I’d like to suggest adding tool:

Zapfile
– Send large files instantly to anyone, without size limits.

It fits well with the other file transfer / dev tools listed here.

@tjhorner
Copy link

tjhorner commented Nov 5, 2025

croc is not P2P - it performs transfer entirely over a relay. It is possible to self-host the relay, though.

@ekinoxben
Copy link

Is there any one of these services that could possibly accept a drag'n'drop of a complete folder and share the entire content (with folders/files inside) without messing up everything?
All of the ones I've tested only accept one or some files individualy, or if multiple in a folder and subfolders like File.pizza, the structure is mess as it download files individually...

Thank you!

@mokshith-moksh
Copy link

@ekinoxben
Copy link

ekinoxben commented Nov 24, 2025

mokshith-moksh
It can accept a folder, cool, but it download files individualy and don't keep the folder structure... If it could at least zip the folder to prevent that...

@ekinoxben checkout www.shipfilez.app

@medy17
Copy link

medy17 commented Nov 25, 2025

Using OPFS probably means that a copy of all file data is stored in the browser storage. If the file is large, the user may not have enough storage space for an extra copy. Therefore, it would be preferable if the data could be directly streamed to the final destination, without storing it in OPFS first.

OPFS is for the receiver not the sender. There's no "extra copy."

@abacabadabacaba
Copy link

Using OPFS probably means that a copy of all file data is stored in the browser storage. If the file is large, the user may not have enough storage space for an extra copy. Therefore, it would be preferable if the data could be directly streamed to the final destination, without storing it in OPFS first.

OPFS is for the receiver not the sender. There's no "extra copy."

To actually use the file, the receiving user has to save it to the regular filesystem, not OPFS. If the tool that they are using to transfer the file uses OPFS, then at this point there are two copies of the file: one in OPFS, and one in the regular filesystem where the user has saved it. If the file is large and the receiving user has little storage space, they may be able to afford the space for one copy but not for two.

@medy17
Copy link

medy17 commented Nov 25, 2025

Using OPFS probably means that a copy of all file data is stored in the browser storage. If the file is large, the user may not have enough storage space for an extra copy. Therefore, it would be preferable if the data could be directly streamed to the final destination, without storing it in OPFS first.

OPFS is for the receiver not the sender. There's no "extra copy."

To actually use the file, the receiving user has to save it to the regular filesystem, not OPFS. If the tool that they are using to transfer the file uses OPFS, then at this point there are two copies of the file: one in OPFS, and one in the regular filesystem where the user has saved it. If the file is large and the receiving user has little storage space, they may be able to afford the space for one copy but not for two.

ohh that's what you meant. in that case, you'd probably just want showsaveFilePicker API and that's not ideal for UX. If you have multiple files, you need multiple prompts. Probably fine if you're sending large files since most people send a few at a time anyways.
The real problem there is Firefox cause their showSaveFilePicker implementation just falls back to memory.

@abacabadabacaba
Copy link

showSaveFilePicker isn't supported in Firefox and Safari. A better option is to stream a file using a service worker.

@medy17
Copy link

medy17 commented Nov 25, 2025

showSaveFilePicker isn't supported in Firefox and Safari. A better option is to stream a file using a service worker.

actually a pretty good idea. StreamSaver.js?

unfortunately, still some issues remain in UX like in-app progress bars and multiple save prompts if there is more than one file.

@abacabadabacaba
Copy link

Progress bars should be possible to implement with either solution. After all, the implementation does know how much data it processed, and even if this processing happens in a service worker, the progress can be communicated back to the page. Multiple save prompts unfortunately cannot be avoided without an API like showDirectoryPicker (or generating a ZIP archive or similar, but then the user will need extra space to extract it).

@LetrixZ
Copy link

LetrixZ commented Nov 25, 2025

Do any of these that are web support sharing just text?

@medy17
Copy link

medy17 commented Nov 25, 2025

Progress bars should be possible to implement with either solution. After all, the implementation does know how much data it processed, and even if this processing happens in a service worker, the progress can be communicated back to the page. Multiple save prompts unfortunately cannot be avoided without an API like showDirectoryPicker (or generating a ZIP archive or similar, but then the user will need extra space to extract it).

Agreed on the progress bars. Honestly, I might consider implementing this. Thanks for the idea :) There's a mess of async chains with cancelling transfers in the UX with this but it's probably doable.

The save prompts though which you pointed out very aptly, are a mess unless you use showDirectoryPicker which is also only supported on Chrome and Edge I think. You could zip but yes that'd be right back to square one with space efficiency.

@medy17
Copy link

medy17 commented Nov 25, 2025

Do any of these that are web support sharing just text?

p2party.com and dropsilk.xyz both support texts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment