PeerDrop is a secure, real-time peer-to-peer (P2P) file sharing and chat application built with modern technologies like SvelteKit, Go, WebRTC, and Docker.
š„ Real-time. š End-to-end encrypted. āļø Fully containerized.
RTCDataChannel
Layer | Tech | Purpose |
---|---|---|
Frontend | SvelteKit | Reactive UI + routing |
Backend | Go | Signaling server |
Networking | WebSocket + WebRTC | Real-time P2P transport |
Security | AES-GCM, PBKDF2, ECC (opt-in) | End-to-end encryption |
DevOps | Docker + Docker Compose | Containerized app infrastructure |
peerdrop/
āāā client/ # SvelteKit frontend
ā āāā src/
ā ā āāā routes/ # Pages (UI)
ā ā āāā lib/ # Encryption, WebRTC logic
ā āāā static/ # Public files
āāā server/ # Go signaling server
ā āāā main.go
ā āāā handlers.go
ā āāā Dockerfile
āāā docker-compose.yml # Full stack orchestration
āāā README.md # You're here!
git clone https://github.com/05sanjaykumar/Peer-Drop.git
cd peerdrop
cd server
go run main.go
cd client
pnpm install
pnpm dev
Visit: http://localhost:5173
To run the whole app using Docker:
docker-compose up --build
Frontend: http://localhost:3000
Backend (WebSocket): ws://localhost:8080/ws
Want to improve or extend PeerDrop? PRs are welcome! Please open an issue for major feature discussions.
MIT Ā© 2025 Sanjay
This project is a hands-on learning initiative to explore the intersection of networking, frontend frameworks, cryptography, and real-time systems.
Built with ā¤ļø by @yourusername