Skip to content

FuryMesh

FuryMesh Logo

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.

# Example of resuming a transfer using the command line
furymesh resume --file-id <file-id>

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

License

FuryMesh is licensed under the MIT License.