Skip to content

v2.0.5

Choose a tag to compare

@github-actions github-actions released this 27 Sep 13:03
· 7 commits to main since this release

PureSend v2.0.5

End-to-end encrypted, direct peer-to-peer (P2P) file and folder transfer system built with Go.

Fixed

  • Hole punching works behind routers that do not keep ports. Many
    home routers give an outgoing socket a port of their own — local port
    60982 goes out as 2332 — and keep it for every destination, which hole
    punching can work with. But a peer told the other side its public IP
    with its local port, since STUN was asked from a throwaway socket and
    only its IP was used. The other side punched towards a port nobody was
    on, every attempt failed, and transfers went through the relay. STUN is
    now asked from the QUIC socket itself, and the port the router gave it
    is what goes out for QUIC. The query is repeated every 15 seconds, which
    keeps the router from forgetting the mapping while a sender waits, and
    catches it if the port moves anyway. Each peer offers its own address,
    so every peer behind such a router needs this version.
  • Dependabot's Go module runs failed: the Go proxy lists an old
    go-libp2p tag as v6.0.23+incompatible, Dependabot took it for the
    newest release, and it cannot be resolved. Versions of go-libp2p from 2
    up are now ignored; all of them are those pre-module tags.

Added

  • make test-holepunch (test/holepunch/netns-holepunch-test.sh), run by
    CI: two peers behind routers that move ports, built from network
    namespaces, with the meeting point behind a proxy as it is behind
    Cloudflare in production. The receiver must connect directly and the
    relay must not carry the files. 2.0.4 fails it; with routers that keep
    ports, both versions pass.

⚡ Quick Install (One-Line)

  • Linux & macOS (Arch, Ubuntu, Fedora, Debian, macOS):
    curl -fsSL https://raw.githubusercontent.com/Baaaki/PureSend/main/install.sh | sh
  • Windows (PowerShell):
    irm https://raw.githubusercontent.com/Baaaki/PureSend/main/install.ps1 | iex

📦 Manual Installation & Direct Download (Assets)

  • 🪟 Windows (x86_64): Extract the .zip archive and run puresend.exe.
  • 📦 Debian / Ubuntu (amd64): Download the .deb package and install by double-clicking or running sudo dpkg -i puresend_*.deb.
  • 🐧 Linux (x86_64): Extract the .tar.gz archive and run directly from the terminal (./puresend).
  • 🍏 macOS (Apple Silicon - M1/M2/M3/M4): Extract the .tar.gz archive and run directly from the terminal (./puresend).

💡 macOS Note: If macOS Gatekeeper displays an "unverified developer" warning on first launch, you can remove the quarantine attribute by running:
xattr -d com.apple.quarantine puresend