Welcome to the SimpleShare project! This project provides a secure and efficient way to share files between browsers using WebRTC. It uses Cloudflare-provided STUN and TURN servers to establish the best available connection, prefers direct peer-to-peer transfer when possible, and never stores transferred files on the server. For large files, the project splits them into manageable parts to ensure smooth transfer.
- WebRTC-Based File Sharing: Utilizes WebRTC with Cloudflare-provided STUN and TURN servers, preferring direct peer-to-peer connections and falling back to relay only when needed.
- Multiple Connections: Establishes multiple connections to accelerate the file transfer process.
- End-to-End Encryption: Ensures that files are encrypted during transfer, providing high security and privacy.
- No Server Storage: Files are never stored on any server during the transfer, enhancing security and privacy.
- File Splitting: Automatically splits large files into smaller parts to facilitate easier and more reliable transfers.
- WebSocket Server: A server facilitates the initial signaling flow, serves the runtime
GET /ice-serversWebRTC configuration, and exposesGET /healthzfor platform health checks (including WebSocket/room metrics).
We welcome contributions to improve this project! Here are some ways you can contribute:
- Report bugs and issues
- Submit feature requests
- Create pull requests to fix bugs or add new features
The frontend now fetches its WebRTC ICE configuration at runtime from the backend's Cloudflare-backed GET /ice-servers endpoint. The backend returns the raw RTCIceServer[] array, including both STUN and TURN entries with temporary TURN credentials.
This project is licensed under the MIT License. See the LICENSE file for details.