FuryMesh¶
A decentralized peer-to-peer file sharing system
Overview¶
FuryMesh is a high-performance, decentralized peer-to-peer file sharing system designed for efficient and secure file transfers. It leverages distributed hash tables (DHT) for peer discovery and WebRTC for direct peer-to-peer communication, enabling fast and reliable file transfers even across NATs and firewalls.
-
🚀 Fast & Efficient
Optimized for high-speed transfers with multi-peer downloading and resumable transfers -
🔒 Secure
End-to-end encryption for all file transfers -
🌐 WebRTC Transport
Direct peer-to-peer connections for efficient data transfer -
🔄 DHT Network
Distributed peer discovery without central servers -
📁 Multi-Peer Transfers
Download different chunks from different peers simultaneously -
⏯️ Resume Support
Automatically resume interrupted transfers
Key Features¶
Multi-Peer Transfers¶
FuryMesh can download different chunks of a file from multiple peers simultaneously, significantly increasing download speeds and improving resilience against peer disconnections.
# Example of multi-peer transfer using the command line
furymesh download --file-id <file-id> --multi-peer
Resume Support¶
Interrupted transfers can be automatically resumed from where they left off, saving bandwidth and time.
DHT Network¶
FuryMesh uses a Kademlia-based distributed hash table for decentralized peer discovery and content routing, eliminating the need for central servers.
WebRTC Transport¶
Direct peer-to-peer connections are established using WebRTC, enabling efficient data transfer even through NATs and firewalls. Learn more about our WebRTC implementation.
End-to-End Encryption¶
All file transfers are secured with end-to-end encryption, ensuring that only the intended recipient can access the file contents.
Getting Started¶
Check out the Quick Start guide to begin using FuryMesh.
# Clone the repository
git clone https://github.com/TFMV/furymesh.git
cd furymesh
# Build the application
go build -o furymesh cmd/furymesh/main.go
# Start a node
./furymesh start --port 8080 --data-dir ./data
Documentation¶
- Features: Detailed information about FuryMesh features
-
Usage Guides: How to use FuryMesh effectively
-
Advanced Topics: Technical details for developers
- WebRTC Implementation
License¶
FuryMesh is licensed under the MIT License.