DEV Community

Kerim Sabic
Kerim Sabic

Posted on

Building an open-source Windows file transfer app with Rust, Tauri and QUIC

Building an open-source Windows file transfer app with Rust, Tauri and QUIC

I recently launched Lightning P2P, an open-source Windows file transfer app.

The idea is simple:

Select a file → generate a link or QR code → receive the file.

No account.

No cloud upload.

No artificial storage dashboard.

Just direct-first file transfer.

GitHub: https://github.com/Kerim-Sabic/lightning-p2p

Product Hunt: https://www.producthunt.com/products/download-lightning-p2p


Why I built it

File transfer still feels more complicated than it should, especially on Windows.

If you want to send a file from one device to another, you usually end up with one of these options:

  • upload it to cloud storage
  • send it through a messaging app
  • use a USB cable
  • use a tool that only works on the same LAN
  • create an account somewhere
  • deal with file-size limits
  • use something powerful but too technical for normal users

AirDrop solved this feeling well inside Apple’s ecosystem.

But outside that ecosystem, especially for Windows users, the experience still feels fragmented.

I wanted to build something closer to:

“I have a file. I want to send it now. I do not want to create an account or upload it somewhere first.”

That became Lightning P2P.


What Lightning P2P does today

The current release is Windows-first.

It lets you share files using a simple receive link or QR code flow.

Current state:

  • Windows release available
  • Android sideload alpha
  • open-source
  • no account system
  • no cloud storage bucket
  • direct-first transfer
  • relay fallback when direct connection is blocked
  • sender must stay online during transfer

The goal is not to make another complicated sync tool.

The goal is a simple file transfer experience that normal users can understand, while still being technically serious underneath.


Tech stack

The current stack is:

  • Rust for the backend
  • Tauri for the desktop app
  • iroh/QUIC for the transfer layer
  • BLAKE3 for file verification
  • mDNS for nearby discovery
  • Windows-first packaging
  • Android alpha for receiving/testing flows

I chose Rust because this type of app needs reliability, performance, and a strong foundation for networking and file handling.

I chose Tauri because I wanted a desktop app that feels lightweight and native enough, without shipping a massive Electron-style bundle.

For the transfer layer, iroh/QUIC is interesting because it supports a modern direct-first networking model while still allowing relay fallback when direct connections are blocked.


Direct-first does not mean “direct always”

One important design decision was to be honest about networking.

In an ideal world, two devices connect directly and transfer the file peer-to-peer.

In the real world, NATs, firewalls, corporate networks, mobile networks, routers, and operating systems make this harder.

So the model is:

  1. Try direct transfer first.
  2. Use relay fallback when direct connection is blocked.
  3. Avoid using a cloud storage bucket as the primary transfer path.
  4. Keep the sender online while the transfer is available.

This distinction matters.

Lightning P2P is not trying to pretend that networking is magic. The product should explain clearly what happens, what is private, and what limitations exist.


Security and trust model

The current security model is still being improved, but the basic principles are:

  • no account required
  • no cloud storage bucket
  • transfer links / QR codes act like capability tokens
  • anyone with a valid receive link can request the file while it is available
  • BLAKE3 is used for verification
  • the sender must remain online
  • nearby discovery should be treated as suitable for trusted networks

This is one of the areas where I especially want feedback.

File transfer apps are easy to make look simple, but the trust model needs to be precise.

Users should understand:

  • who can access the file
  • whether the file is uploaded somewhere
  • whether a relay can store the file
  • whether the sender must stay online
  • what happens if a link is shared accidentally
  • what happens on public Wi-Fi
  • what guarantees the app does and does not provide

I would rather be conservative and clear than make vague claims.


What makes this different from existing tools?

There are already good tools in this space.

Some examples:

  • AirDrop
  • LocalSend
  • Magic Wormhole
  • Syncthing
  • Snapdrop / PairDrop
  • WeTransfer
  • Dropbox
  • Google Drive

I am not trying to claim that Lightning P2P replaces all of them.

The difference is the product direction.

AirDrop has the best mainstream UX, but it is locked inside Apple’s ecosystem.

LocalSend is excellent, especially for LAN transfer.

Magic Wormhole is technically elegant, but it is more comfortable for technical users.

Syncthing is powerful, but it is more of a sync system than a quick “send this file now” flow.

Cloud tools are familiar, but they usually involve accounts, uploads, storage limits, and a different privacy model.

Lightning P2P is trying to sit in a specific place:

simple enough for normal Windows users, open enough for developers, and direct-first enough for people who do not want every file transfer to become a cloud upload.


What I am not claiming yet

I am not claiming speed leadership.

Proper public benchmarks still need to be published.

I also do not want to oversell the current state. This is still early.

Current limitations:

  • Windows is the main supported platform
  • Android is alpha/sideload only
  • macOS and Linux are planned but not shipped yet
  • sender must stay online
  • public benchmarks are not ready yet
  • receive links need to be treated carefully because they act like capability tokens

I think open-source projects earn trust faster when they are clear about what is missing.


What I want feedback on

I would really appreciate feedback from developers, open-source builders, Windows users, and anyone who has worked on networking or desktop apps.

The main areas where feedback would help:

  • NAT traversal reliability
  • relay fallback model
  • security model
  • receive-link capability tokens
  • installer trust and signing on Windows
  • Android UX
  • whether macOS/Linux should come next
  • README clarity
  • benchmarks to include
  • comparison with existing tools

GitHub issues, comments, criticism, and suggestions are all useful.


Roadmap

The near-term roadmap is:

  1. Improve the Windows release experience
  2. Add a clearer demo GIF/video
  3. Publish public benchmarks
  4. Improve security documentation
  5. Improve Android alpha
  6. Add macOS/Linux support
  7. Add clearer comparison docs
  8. Improve NAT traversal diagnostics
  9. Add more contributor-friendly issues
  10. Build a stronger open-source community around the project

Longer term, I would like Lightning P2P to become a trusted open-source file transfer layer that works across platforms without forcing users into accounts or cloud storage.


Links

GitHub:

https://github.com/Kerim-Sabic/lightning-p2p

Product Hunt:

https://www.producthunt.com/products/download-lightning-p2p

If the project looks useful, feedback on the repo would mean a lot.

I am especially interested in technical criticism around the networking model, security assumptions, and what should be prioritized next.

Top comments (0)