A modern, secure file transfer system with P2P capabilities and share ID-based access control.
Files are now protected by unique Share IDs!
- 🔑 32-character hex IDs - Cryptographically secure
- 🛡️ Access control - Only users with Share ID can access files
- 🚫 No bypass - Server validates all requests
- ✅ Tested & ready - See
TEST_RESULTS.md
How it works:
- Upload file → Get Share ID
- Share ID with recipient
- Recipient enters Share ID → Access files
A distributed file transfer platform that chunks files for reliable uploads with automatic resume, hash-based integrity checks, and live progress updates via Server-Sent Events.
- Framework: React 19, TypeScript 5, Next.js 16
- Styling: Tailwind CSS 4, Lucide React icons
- Features: Drag-drop file upload, progress bars, parallel chunk uploads
- Security: xxHash client-side hashing (per-chunk + full file)
- Real-time: SSE for live progress updates
- Persistence: localStorage for resumable sessions
- Framework: Fiber v2 (REST + SSE)
- Storage: File-based chunked storage in
./storage/<uploadID>/ - Endpoints:
POST /init- Initialize upload sessionPUT /upload/:uploadID/:idx- Upload chunk with hash validationGET /status/:uploadID- Query received chunks (resume support)POST /complete/:uploadID- Reassemble & verify fileGET /events/:uploadID- SSE progress streamGET /static- Download assembled files
- Security: Per-chunk xxHash validation, final file hash verification
- Metadata: Hash tracking (
.xxhash)
- Purpose: Command-line bulk uploader
- Config: 5KB chunks, 4 parallel workers, 5 retry attempts
- Features: Resume from interruption, exponential backoff
- ✅ Chunked Upload: 1MB chunks (configurable)
- ✅ Resume Support: Query received chunks, skip completed ones
- ✅ Integrity Checks: xxHash validation per chunk + full file
- ✅ Parallel Upload: Multi-worker chunk upload for faster transfers
- ✅ Real-time Progress: SSE broadcast to all clients
- ✅ Auto-reassembly: Server stitches chunks on
/complete - ✅ Retry Logic: Exponential backoff (up to 6 attempts)
- ✅ CORS Enabled: Configured for
localhost:3000
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Browser │◄───SSE──┤ Orchestrator │◄────────┤ CLI Client │
│ (Next.js) │────────►│ (Fiber) │ │ (Go) │
└─────────────┘ REST └──────────────┘ └─────────────┘
│ │
│ ▼
│ ┌─────────────┐
└─────────────────►│ Storage │
Download │ (chunks) │
└─────────────┘
- ✅ Fully functional upload/download system
- ✅ Multiple completed upload sessions in storage
- ✅ Test files successfully transferred (25+ chunks processed)
- ✅ Real-time progress tracking operational
- ✅ Resume capability tested and working