Sendfa.st π« is a peer-to-peer file sharing service that enables users to share files quickly and securely. The files that are shared directly transferred from one device to another without any intermediate server. The application is built using WebRTC and Websockets.
- No file size limit βΎοΈ
- No registration required π€
- End-to-end encryption π
- Cross-platform support π€
- Fast file transfer π
- Free to use πΈ
- Open-source π
- Sender selects the files he wants to send
- The sender shares a unique link with receiver.
- Receiver connects using the unique link
- Receiver accepts files and receives the files.
The Go backend is used to create and connect users via rooms
. In these rooms the users
share the information required for setting up a direct WebRTC connection. These rooms are websocket connections, to have instant commnication between the users and the server.
Over the direct WebRTC datachannel information is exchanged about the file. If the other user accepts the files the download starts. The downloader informs the sender when to start sending the next file if there are multiple.
The only point of contact with a server is to facilite the creation of a WebRTC
all other info is exchange via a p2p connection. The server persists no state. All protocols are encrypted using TLS.
- Go version 1.22.5 or higher
- Node.js version 20.12.2 or higher
- Docker (optional)
Install the required packages.
cd frontend/
npm install
Run in development mode
npm run dev
Running the backend
cd backend/
go run cmd/api/main.go
or run the docker image
docker run $(docker build -q .)
- Submissions are welcome, create a PR or create an issue.
- Help review the pending issues the by leaving a comment or reaction.
This project is licensed under GNU General Public License v3.0 - see the LICENSE file for details.
Developed by 0xLaurens with β€οΈ.