Skip to main content

Secure • Simple • Reliable data streaming. End-to-end encrypted Unix pipes.

Project description

🦊 FoxPipe v1.9

Secure • Simple • Reliable Data Streaming

FoxPipe is a minimalist CLI tool for end-to-end encrypted, optionally compressed data transfer between two machines — no setup, no accounts, just a shared password.


🚀 Why FoxPipe?

Simple No servers, no login. Just run sender and receiver.

Efficient Built-in zlib streaming compression reduces bandwidth usage automatically.

Secure by Design Uses AES-256-GCM (AEAD) for encryption and Scrypt for strong key derivation.

Resilient Includes chunk limits, decompression guards, session validation, and timeouts.


📥 Installation

Install directly from PyPI:

pip install foxpipe

🛠️ Usage

1️⃣ Receiver (Destination)

Start this first:

foxpipe receive 8080 -p "secure-pass" > backup.sql

Allow external connections:

foxpipe receive 8080 -p "secure-pass" --public > backup.sql

2️⃣ Sender (Source)

cat backup.sql | foxpipe send 192.168.1.5 8080 -p "secure-pass"

📦 Advanced Usage

📁 Directory Transfer (Recommended)

# Sender
tar -cf - ./project | foxpipe send 1.2.3.4 9000 -p secret

# Receiver
foxpipe receive 9000 -p secret | tar -xf -

📄 Direct File Transfer

foxpipe send 1.2.3.4 8080 -p secret --file image.iso

🚫 Disable Compression

For already compressed files:

foxpipe send 1.2.3.4 8080 -p secret --file video.mp4 --no-compress

🔒 Security Model (v1.9)

  • Encryption: AES-256-GCM (authenticated encryption per chunk)
  • Key Derivation: Scrypt (N=2¹⁵, r=8, p=1)
  • Handshake Authentication: HMAC-SHA256
  • Session Binding: Random session ID prevents replay across sessions
  • Integrity & Authenticity: Provided by AES-GCM (AEAD)

⚠️ HMAC is used only for handshake authentication, not for data chunks.


⚠️ Safety Measures

  • Max Chunk Size: 10 MB
  • Session Timeout: 300 seconds (idle)
  • Connection Timeout: 15 seconds
  • Safe Streaming Decompression: Protects against zip-bomb style attacks
  • DoS Protection: Receiver enforces a global transfer limit (default 5GB). Adjust using --limit (e.g., --limit 100 for 100GB).

🧠 Design Notes

  • Uses streaming compression (single zlib stream)
  • Uses random nonce per chunk (safe for AES-GCM usage)
  • Uses constant-time HMAC comparison
  • Avoids buffering entire files → supports large transfers
  • Minimal protocol → low overhead, easy to audit

⚡ Quick Example

# Receiver
foxpipe receive 9000 -p pass --public > file.txt

# Sender
foxpipe send <IP> 9000 -p pass --file file.txt

⚠️ Limitations

  • Single connection only
  • No resume support
  • No file metadata (name/size handled externally)

🦊 Philosophy

Build simple tools that are hard to misuse and easy to trust.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

foxpipe-1.9.0.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

foxpipe-1.9.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file foxpipe-1.9.0.tar.gz.

File metadata

  • Download URL: foxpipe-1.9.0.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for foxpipe-1.9.0.tar.gz
Algorithm Hash digest
SHA256 747a096046887e8544f5c0b61d3a7e8611771610b501b84f8dc74b50e1831cea
MD5 7cc64bc9f54611a1793ef36c48439f5b
BLAKE2b-256 244ed5e4f5a0d1c67a095ef68ff32fe76f1bfb4deb51ca06ce1071e052a52f3a

See more details on using hashes here.

File details

Details for the file foxpipe-1.9.0-py3-none-any.whl.

File metadata

  • Download URL: foxpipe-1.9.0-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for foxpipe-1.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd8bcc16fbe10ad39e6bbc55563c0055e933cc1e23973b040781d1da2513fcef
MD5 9cd9f3d01316827b670c9ed480dc191d
BLAKE2b-256 939a1e7d5a2e283084f0ef72244937b93500acfe54da634bc486729a4c6c6402

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page