A fast, secure, and easy way to transfer files between devices on the same local networkβno internet connection or account required.
| Feature | Description |
|---|---|
| π Local Network Only | All transfers stay on your WiFiβnever touch the internet |
| π« No Accounts | Start sharing instantlyβno login, no registration |
| π± QR Code Sharing | Scan to connect devices quickly |
| β‘ High-Speed Transfer | Stream files at full LAN speed (50-200 MB/s) |
| π Live Progress | Real-time transfer progress with speed display |
| β Integrity Check | SHA256 checksum verification |
| π² PWA Support | Install as a native app on any device |
| π Privacy First | Sessions expire after 1 hour, no logs retained |
sequenceDiagram
participant S as Sender
participant R as Receiver
participant B as Backend
Note over S,R: Both devices on same WiFi
S->>B: 1. Select files & create session
B-->>S: Returns session_id & share URL
S->>R: 2. Share URL/QR Code
R->>B: 3. Open URL, join session
B-->>R: Show receiver UI + QR for sender
S->>B: 4. Scan receiver's QR
B-->>B: 5. WebSocket pairing
B-->>S: Receiver connected!
B-->>R: Transfer starting!
S->>R: 6. File stream (chunked)
R->>B: 7. Progress updates
B-->>S: Transfer complete
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β SENDER ββββββΊβ SERVER ββββββΊβ RECEIVER β
β β β (Flask + β β β
β 1. Pick β β SocketIO) β β 3. Open URL β
β files β β β β & join β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β β
β 4. Pair via β
β WebSocket β
βΌ βΌ
βββββββββββββββ βββββββββββββββ
β 5. Stream ββββββΊβ 6. Download β
β files β β files β
β (4MB chunks)β β + verify β
βββββββββββββββ βββββββββββββββ
- Python 3.8+
- A local network (WiFi)
# Clone or download the project
cd MultiShare/backend
# Create virtual environment (recommended)
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtpython app.pyExpected output:
π MultiShare starting...
π± Open on sender: http://192.168.1.5:5000
π₯ Receiver visits: http://192.168.1.5:5000
- Open in Browser β Visit
http://<your-ip>:5000on both devices - Send Files β Click "Send Files", select files, share the link/QR
- Receive Files β Open the shared link or scan QR code
- Confirm Transfer β Review and confirm on the sender side
- Download β Files stream directly to receiver with progress
| Metric | WiFi 5 | WiFi 6 |
|---|---|---|
| Transfer Speed | 50-100 MB/s | 100-200 MB/s |
| Connection Time | < 2s | < 2s |
| RAM Usage | < 100 MB | < 100 MB |
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend β
β HTML5 β’ CSS3 β’ JavaScript β’ Socket.IO β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Backend β
β Flask β’ Flask-SocketIO β’ Python 3.8+ β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Network Layer β
β HTTP (transfers) β’ WebSocket (signaling) β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
- Flask β Web framework
- Flask-SocketIO β Real-time communication
- qrcode[pil] β QR code generation
- Pillow β Image processing
- eventlet β Async I/O
MultiShare/
βββ backend/
β βββ app.py # Main Flask + SocketIO server
β βββ config.py # Port, chunk size, session TTL
β βββ requirements.txt # Python dependencies
β βββ utils/
β βββ network.py # Local IP detection
β βββ session.py # In-memory session management
β βββ file_handler.py # Chunked streaming + checksums
β
βββ frontend/
β βββ templates/
β β βββ index.html # Landing page
β β βββ send.html # File sender UI
β β βββ receive.html # File receiver UI
β βββ static/
β βββ css/style.css # Responsive styles
β βββ js/main.js # Client-side logic
β βββ sw.js # Service worker (PWA)
β βββ manifest.json # PWA manifest
β
βββ README.md
βββ LICENSE
- Local Network Only β All traffic stays within your LAN
- Auto-Expiring Sessions β Sessions expire after 1 hour
- Random Session IDs β Unguessable UUIDs prevent unauthorized access
- Checksum Verification β SHA256 ensures file integrity
- No Persistent Storage β No logs or files retained after transfer
| Platform | Method |
|---|---|
| Windows | Native Python |
| macOS | Built-in Python3 |
| Linux | System Python |
| Android | Termux |
| iOS | Pythonista / a-Shell |
This project is licensed under the MIT License β see the LICENSE file for details.
Contributions are welcome! Feel free to open issues or submit pull requests.