Fast, Private, and Decentralized Peer-to-Peer File Transfer.
Aether is a browser-based P2P tool that allows users to send large files directly to each other without the need for a central storage server. By leveraging WebRTC, Aether establishes a direct "pipeline" between two browsers, ensuring your data never touches a third-party server.
🚀 Live Demo | 🛠️ Backend Status
- 🚀 Direct P2P Transfer: Files are streamed directly from Peer A to Peer B using WebRTC Data Channels.
- 🔒 Privacy First: Since files aren't uploaded to a server, your data remains private and secure.
- 📦 Large File Support: Intelligent file chunking and dynamic buffer management prevent browser crashes.
- 🔑 Private Rooms: Host your own rooms with optional passwords and custom peer limits.
- 📱 Fully Responsive: A sleek, modern UI that works seamlessly on desktops, tablets, and smartphones.
- 🛠️ Advanced Settings: Custom accent colors, Verbose mode for technical logs, and adjustable networking tweaks (Chunk size, Buffer limits).
- ⚡ Instant Connection: Unique room codes for quick pairing via a lightweight Socket.io signaling server.
| Component | Technology | Purpose |
|---|---|---|
| Frontend | HTML5, CSS3, JavaScript | Modern, responsive user interface |
| Signaling | Node.js, Socket.io | Matchmaking peers and swapping connection details |
| Protocol | WebRTC | Establishing the direct peer-to-peer data channel |
| Infrastructure | Vercel & Render | High-availability hosting for frontend and backend |
Aether follows a four-step process to connect two strangers across the internet:
- Signaling: User A creates a room. User B joins using a code. The signaling server (Node.js) helps them find each other.
- The Handshake: The browsers exchange SDP (Session Description Protocol) packets and ICE Candidates to negotiate the best network path.
- Direct Pipeline: Once a path is found, a
RTCDataChannelis opened. The signaling server now steps out of the way. - Chunked Streaming: The file is sliced into small binary chunks, sent across the P2P line, and reassembled on the receiver's end as a
Blob.
Distributed under the MIT License. See LICENSE for more information.
Built with ❤️ by Team ChromaHub