v1.0.0 Stable Release

Direct, Fast, and Zero-Knowledge Peer-to-Peer File Sharing

Share files of any size directly from device to device. Zero configuration, completely local, E2E encrypted, and bypasses browser memory constraints.

https://localhost:3001

Sender

Direct WebRTC

Receiver

Engineered for Speed & Security

A unified hybrid transfer protocol built for seamless operation in online, cloud-scale, and isolated offline LAN environments.

Direct Beam (Instant P2P)

Devices on the same network discover each other automatically based on shared IP mapping. Connect and stream files in seconds over local Wi-Fi with no configuration.

Zero-Knowledge Security

Files are encrypted chunk-by-chunk in-browser using AES-256-GCM. The decryption key stays inside the URL hash fragment (#), which is never sent to the server.

IndexedDB Buffering

Large files (10GB+) will exhaust browser heap memory and crash the tab. We buffer chunks directly to client disk storage via IndexedDB to enable infinite file size transfers.

SW Streaming assembly

A browser Service Worker intercepts downloads and streams chunks from IndexedDB directly to the browser download manager in real-time, bypassing RAM heap exhaustion.

Symmetric End-to-End Cryptography

SendFiles protects your privacy with a zero-knowledge architecture. No unencrypted data or keys ever touch the network or server.

1

Client-Side Key Generation

An AES-256-GCM key is generated directly in your browser. Files are encrypted chunk-by-chunk before sending.

2

Hash-Bound Decryption Key

The key is placed in the URL hash (#). Browsers strictly keep hash segments client-side, meaning the key is never sent to the signaling server.

3

Salted PBKDF2 Password Lock

Locker PIN codes are stretched client-side using PBKDF2 with 600,000 iterations of SHA-256, protecting against brute-force attacks.

// Zero-Knowledge Key Isolation
https://zihaaaad.github.io/SendFiles/#/locker/7AF92D#key=7e9f3b8a1c...
// Browsers never send hash (#) to the server.
Network Gateway Key Blocked
// Express Server Received Parameters:
RoomID: "7AF92D"
File Count: 3
DecryptionKey: null (Unknown to Server)

Download SendFiles Executables

Choose between single-file standalone binaries or portable signed archives designed to bypass strict enterprise security boundaries.

Windows Platform

Windows 10/11 x64 architecture

Linux Distribution

Ubuntu/Debian/CentOS x64 system

macOS Platform

Intel & Apple Silicon (M1/M2/M3) chips

💡 Antivirus & Windows Defender Bypass: Standard standalone executables are compiled wrappers that might trigger corporate security warnings (e.g. SmartScreen). The Portable Signed Packages contain the officially signed Node.js binary from the Node Foundation and run the self-contained app code via a helper script, completely bypassing execution locks.

Technical FAQ

Have questions about SendFiles' design, security, or network routing? Find answers here.

Does the server see my files or passwords?
No. All encryption keys are stored inside the URL hash (#), which remains local in your browser and is never sent to the network. Passwords are salted and stretched client-side using 600,000 iterations of PBKDF2 before the hash is sent, ensuring the server has zero knowledge of your plain text passcode or raw file contents.
How does the local network auto-discovery work?
When you load the app, the client pings the server to determine its public WAN IP address. Senders and receivers sharing the same public IP are grouped into a secure "neighborhood". For local networks, they automatically exchange signaling offers to establish a direct LAN peer connection.
What happens if direct P2P connections are blocked?
In restrictive network configurations (like double NATs or symmetric enterprise firewalls) where WebRTC fails, the engine falls back to a WebSocket chunk relay. Chunks are encrypted, packaged using custom binary framing (saving 33% overhead over Base64), and securely routed through the signaling gateway.
Can this application scale horizontally?
Yes. The backend features fully integrated Redis clustering. Active room mappings and WebSocket signaling packets are replicated across server nodes using Redis Pub/Sub channels, allowing you to run a cluster of SendFiles instances behind a load balancer.