Skip to content

v2.0.6

Choose a tag to compare

@github-actions github-actions released this 28 Sep 11:16
· 3 commits to main since this release

PureSend v2.0.6

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

Added

  • Structured CLI error handling and actionable suggestions. CLI and
    headless modes now run errors through i18n.Explain. Rather than
    leaking raw libp2p or system stack traces, errors present clear localized
    summaries with bulleted suggestions ("What you can do" / "Ne yapabilirsin").
  • Typed sentinel errors across all packages. Exported distinct error
    sentinels (rendezvous.ErrRoomNotFound, transfer.ErrChecksumMismatch,
    transfer.ErrTransferDeclined, transfer.ErrFileModified,
    transfer.ErrInsufficientDiskSpace, transfer.ErrConnectionLost,
    p2p.ErrRoomExpired, p2p.ErrRendezvousUnreachable,
    p2p.ErrPeerUnreachable, p2p.ErrRelayLimitExceeded), allowing robust
    programmatic checks with errors.Is / errors.As.
  • Early file and destination validation. Sender now verifies that files
    exist and are readable before bringing up the P2P network stack. Receiver
    eagerly validates that the target destination directory is writable and safe.
  • Disk space pre-check. Receiver verifies available disk capacity
    (transfer.CheckAvailableSpace) before initiating incoming payload writes.
  • Multilingual headless experience. CLI flags -lang tr and -lang en
    now fully translate terminal transfer prompts, acceptance queries, and
    progress output.
  • Structured exit codes. Client returns standard exit codes (0 for success,
    2 for bad syntax or flags, 3 for network unreachable, 4 for wrong code or
    expired room, 5 for declined transfer, 6 for I/O and checksum errors, 130
    for interrupt).
  • CLI flag validation and guidance. Detects and warns about positional
    arguments (e.g. puresend send file instead of -send) and conflicting
    flags (-yes or -out used with -send).
  • Server diagnostics. Server checks socket availability before listening,
    provides clear port collision guidance (e.g. port 4001 in use), validates
    announcement multiaddresses, and checks private key file permissions.

⚡ 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