Skip to content

Send files and folders anywhere in the world without storing in cloud - any size, any format, no accounts, no restrictions.

License

Notifications You must be signed in to change notification settings

tonyantony300/alt-sendme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

File transfer doesn't need to be complicated

AltSendme Header

AltSendme working demo

Version Website Platforms Sponsor

A free and open-source file transfer tool that harnesses the power of cutting-edge peer-to-peer networking, letting you transfer files directly without storing them on cloud servers.

Why rely on WeTransfer, Dropbox, or Google Drive when you can reliably and easily transfer files directly, end-to-end encrypted and without revealing any personal information?

Features

  • Send anywhere โ€“ Works seamlessly on local networks or across continents.
  • Peer-to-peer direct transfer โ€“ Send files straight between devices, with no cloud storage in between.
  • End-to-end encryption โ€“ Always-on protection with QUIC + TLS 1.3 for forward and backward secrecy.
  • No accounts or personal info โ€“ Transfer files without sign-ups or exposing private data.
  • Transfer anything โ€“ Send files or directories of any size or any format, verified with BLAKE3-based integrity checks.
  • Resumable transfers โ€“ Interrupted downloads automatically resume where they left off.
  • Fast & reliable โ€“ Capable of saturating multi-gigabit connections for lightning-fast transfers.
  • NAT traversal via QUIC โ€“ Secure, low-latency connections using QUIC hole punching with encrypted relay fallback.
  • CLI integration โ€“ Interoperable with the Sendme CLI.
  • Mobile & web โ€“ Coming soon.
  • Free & open source โ€“ No upload costs, no size limits, and fully community-driven.

Installation

The easiest way to get started is by downloading one of the following versions for your respective operating system:

Platform Download
Windows AltSendme.exe
macOS AltSendme.dmg
Linux AltSendme.deb

More download options in GitHub Releases.

How it works

Users generate ephemeral tickets (compact, self-contained tokens embedding dialing information, node IDs, and transfer metadata) that recipients paste to initiate connections. Under the hood, AltSendme orchestrates NAT hole punching via QUIC's UDP transport, falling back to encrypted DERP relays only when direct paths fail, ensuring reliable end-to-end encrypted transfers with BLAKE3 integrity verification.

Core Flow

1. Ticket Generation

When sender drags files into the UI, altsendme hash content with BLAKE3, create a content-addressed blob (keyed by multihash), and generate a ticket containing:

  • node_id: Sender's Iroh endpoint hash
  • dial_info: Temporary dialing addresses (QUIC/UDP endpoints)
  • blob_key: BLAKE3 hash of transfer payload
  • TTL and ephemeral session nonce

2. Peer Connection

Receiver pastes ticket. AltSendme then:

  • Parses ticket to extract sender's dial_info
  • Initiates simultaneous outbound QUIC handshakes (UDP hole punching) to predicted public mappings
  • Uses 0-RTT resumption if prior connection exists (QUIC's session tickets)

3. Transfer Protocol

QUIC Stream Multiplexing:

 Stream 0: Control (handshake, progress, integrity)
 Stream 1-N: Payload chunks (resumable, prioritized)
 Datagrams: Signaling (keepalive, NAT refresh)

4. Fallback & Resilience

  • If direct UDP/QUIC fails (symmetric NATs, firewalls), Iroh routes via DERP (tailscale's relay protocol) with encrypted forwarding without payload decryption
  • Connection migration handles WiFi to mobile switches via QUIC's connection IDs
  • Streams avoid TCP's head-of-line blocking; lost packets affect only their stream

Comparison

Aspect Classic P2P AltSendme
Discovery STUN/TURN broadcast Private tickets
NAT Traversal Manual port mapping Auto hole punch + DERP
Encryption Bolt-on TLS Native QUIC crypto
Resilience Single path Multipath + migration
Privacy IP exposed Cozy network

Supported Languages

๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿ‡ท๐Ÿ‡บ ๐Ÿ‡ท๐Ÿ‡ธ ๐Ÿ‡ซ๐Ÿ‡ท ๐Ÿ‡จ๐Ÿ‡ณ ๐Ÿ‡น๐Ÿ‡ผ ๐Ÿ‡ฉ๐Ÿ‡ช ๐Ÿ‡ฏ๐Ÿ‡ต ๐Ÿ‡น๐Ÿ‡ญ ๐Ÿ‡ฎ๐Ÿ‡น ๐Ÿ‡จ๐Ÿ‡ฟ ๐Ÿ‡ช๐Ÿ‡ธ ๐Ÿ‡ง๐Ÿ‡ท ๐Ÿ‡ธ๐Ÿ‡ฆ ๐Ÿ‡ฎ๐Ÿ‡ท ๐Ÿ‡ฐ๐Ÿ‡ท ๐Ÿ‡ฎ๐Ÿ‡ณ ๐Ÿ‡ต๐Ÿ‡ฑ ๐Ÿ‡บ๐Ÿ‡ฆ ๐Ÿ‡น๐Ÿ‡ท ๐Ÿ‡ณ๐Ÿ‡ด ๐Ÿ‡ง๐Ÿ‡ฉ ๐Ÿ‡ช๐Ÿ‡น

Development

If you want to contribute or run the app from source:

Prerequisites

  • Rust 1.81+
  • Node.js 18+
  • npm or yarn

Running in Development

  1. Install frontend dependencies:

    cd web-app
    npm install
  2. Run the desktop app:

    cd src-tauri
    cargo tauri dev

This will start the app with hot reload enabled for both frontend and backend changes.

Building Locally

  1. Build stage:
cd src-tauri
cargo tauri build --no-bundle
  1. Run:
 cd src-tauri/target/release
 ./alt-sendme        # macOS or Linux
 alt-sendme.exe      # Windows

License

AGPL-3.0

Privacy Policy

See PRIVACY.md for information about how AltSendme handles your data and privacy.

Sponsor Buy Me Coffee

Contributors

Acknowledgements

Contact

Reach me here for suggestions, feedback or media related communication.

Thank you for checking out this project! If you find it useful, consider giving it a star and helping spread the word.