Peer-to-peer file transfers in the browser

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
InfluxDB high-performance time series database
Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
influxdata.com
featured
  1. FilePizza

    :pizza: Peer-to-peer file transfers in your browser

    Hmm. I'm not a WebRTC pro but looked into it recently for a hobby project and felt that the typical WebRTC TURN implementation still leaves the TURN server in a quite trusted position. My rough understanding:

    - (1) Each client generates a key pair

    - (2) The fingerprint of the public key is part of the SDP message each client generates

    - (3) The SDP message is somehow exchanged between the clients, out of band, and the session is started. The client's verify the remote peer using the public key from the SDP message.

    The problem is that it's not really feasible in most circumstances to exchange the full SDP message out of band, so instead the service provide some mechanism to map a shorter ID in a URL to a centrally stored copy of the SDP. I think this might be where it happens for filepizza [0].

    This means that a malicious file sharing operator, being in control of both the TURN service and the out-of-band signalling mechanism, could just MITM the DTLS connection and snoop on all the data going by. The peer's think they have each others public keys but they just have two keys owned by the server.

    [0]: https://github.com/kern/filepizza/blob/main/src/channel.ts

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. slskd

    A modern client-server application for the Soulseek file sharing network.

    https://github.com/slskd/slskd

  4. galene-file-transfer

    Command-line file transfer client for the Galene videoconferencing server

    > the holy grail of a P2P service which would allow me to initiate a connection via CLI and get a simple URL to share with someone who could download the file from a web browser

        git clone https://github.com/jech/galene-file-transfer

  5. galene

    The Galène videoconference server

    Now tell the receiver to connect to <https://galene.org:8443/group/public/somethingdifficulttogue...> and login as john with an empty password.

  6. sharedrop

    Easy P2P file transfer powered by WebRTC - inspired by Apple AirDrop

    rather worried that it's going to go the same fate as [Sharedrop](https://github.com/ShareDropio/sharedrop) and [Snapdrop](https://github.com/SnapDrop/snapdrop) where they recently got taken over by LimeWire the crypto/AI company.

  7. snapdrop

    A Progressive Web App for local file sharing

    rather worried that it's going to go the same fate as [Sharedrop](https://github.com/ShareDropio/sharedrop) and [Snapdrop](https://github.com/SnapDrop/snapdrop) where they recently got taken over by LimeWire the crypto/AI company.

  8. wormhole-william

    End-to-end encrypted file transfer. A magic wormhole CLI and API in Go (golang).

    And https://github.com/psanford/wormhole-william which is a Go reimplementation of the client. I only want to point this out specifically because an apt-install of magic-wormhole on Ubuntu 24.04 actually results in a program that does not work (the beauty of python dependencies at play?)

  9. InfluxDB

    InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.

    InfluxDB logo
  10. PairDrop

    PairDrop: Transfer Files Cross-Platform. No Setup, No Signup.

  11. croc

    Easily and securely send things from one computer to another :crocodile: :package:

  12. sendme

    A tool to send files and directories, based on iroh

  13. nicotine-plus

    Graphical client for the Soulseek peer-to-peer network

    limewire aint touchin soulseek

    and it has people building alt.clients

        https://nicotine-plus.org

  14. offline-browser-communication

    Demonstration of a browser connecting to Pion WebRTC without a signaling server.

    You can! https://github.com/pion/offline-browser-communication

    It uses mDNS for discovery. You can only do one browser though.

    I don’t see a path forward on browser/browser that is obvious. It would make it so easy to fingerprint if you could set your mDNS hostname in JS

  15. opendrop

    An open Apple AirDrop implementation written in Python

    Somebody indeed has, but since it uses a custom low-level 802.11 variant, I don't think it's feasible on (at least non-rooted) Android devices: https://github.com/seemoo-lab/opendrop

  16. dragit

    Application for intuitive file sharing between devices.

    Probably you can also add Dragit[1], which is a desktop p2p file sharing tool for local network with automatic host discovery. Currently supporting Linux and Windows. (author & maintainer here) I'm not sure if I should keep on working on the tool, considering the length of the list so far. :D

    [1]: https://github.com/sireliah/dragit

  17. privtracker

    Private BitTorrent tracker generator

    https://privtracker.com/

    The reason I like it more is that most torrent clients can run in the background by default so it's not dependant on keeping a browser tab opened

    It made it to the frontpage not so long ago but it'd be a pity if you had missed it

  18. bob

    A peer-to-peer file-transfer tool in OCaml (by dinosaure)

    I came across this recently while looking at cosmopolitan lib stuff https://bob.osau.re/

  19. copyparty

    Portable file server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file, no deps

    > There are services which allow you to upload via CLI and download via web browser, but they host your file so you have to wait for the full upload to finish before sharing the link.

    There are exceptions to this; I've been making copyparty[1], an httpd which lets you start downloading a file that is still being uploaded[2]. If you catch up with the uploader, it'll throttle the speed so the browser doesn't drop the connection. Uploads and downloads can be done through browser and/or cli.

    I recall there was at least one other alternative with similar functionality somewhere on the awesome-selfhosted list, but I'm failing to find them right now... It was prominently mentioned in the project's readme, but maybe that's no longer the case.

    [1] https://github.com/9001/copyparty

    [2] https://a.ocv.me/pub/g/nerd-stuff/cpp/2024-0418-race-the-bea...

  20. webtorrent

    ⚡️ Streaming torrent client for the web

    Yeah, it uses webtorrent behind the scenes: https://webtorrent.io

    ...which is freaking awesome torrent software, by the way.

  21. fileswithafriend

    I did the same thing a long time ago, though I cant brag about using as long a list of frameworks, source is https://github.com/DusteDdk/fileswithafriend so you can host it youself, announcement post and link to site where it can be used is here https://news.ycombinator.com/item?id=39622511

  22. OnionShare

    Securely and anonymously share files, host websites, and chat with friends using the Tor network

  23. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Magic Wormhole: get things from one computer to another, safely

    31 projects | news.ycombinator.com | 17 Aug 2024
  • LANDrop – Drop any files to any devices on your LAN

    13 projects | news.ycombinator.com | 24 Aug 2023
  • Portal: a CLI file transfer utility from any computer to another

    4 projects | /r/linux | 21 Mar 2023
  • LimeWire Has Acquired ShareDrop

    1 project | news.ycombinator.com | 22 Feb 2025
  • Show HN: Screen Sharing in the Browser–No Downloads, No Registrations

    6 projects | news.ycombinator.com | 28 Nov 2024