Skip to content

lokeshllkumar/file-mesh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

file-mesh

A decentralized P2P file sharing application built with Go, React, and JavaScript's WebRTC API, enabling direct and end-to-end encrypted data transfer between authenticated client using WebRTC DataChannels.

FileMeshDashboard Picture

Introduction

This project was built with the motive to explore decentralized means of sharing data amongst peers, initially on a closed, homogenous network. WebRTC DataChannels enable peer-to-peer communication between devices across network hosting devices and supporting protocols of a large variety. The was coupled with AES-GCM-based end-to-end encryption to provide a safe and private means of sharing data between users, with no intervention from any central party(apart from initially introducing peers to each other).

Features

  • Decentralized peer-to-peer communication between authenticated users using WebRTC DataChannels
  • End-to-end encryption powered by AES-GCM
  • Signalling server between clients powered by WebSockets to exchange SDP messages and ICE candidates
  • JWT-based authentication of users with a MongoDB database storing user data
  • Seamless transfer of files up to 3 GB in size
  • Can handle multiple concurrent file transfers between clients

Getting Started

  • Prerequisites

    • Go 1.20+
    • ReactJS
    • JavaScript (WebRTC API)
    • MongoDB
    • Any modern web browser that supports JavaScript's WebRTC API
  • Clone the repository

git clone https://github.com/lokeshllkumar/file-mesh.git
cd file-mesh
  • Setup the backend server

  • Setup the frontend service

  • Create a profile with your Email ID and connect with another authenticated user to start sharing!

To-Do

  • - Implement a file transfer history page

About

A decentralized P2P file sharing application built with Go and React, enabling direct and encrypted data transfer between authenticated clients using WebRTC DataChannels and end-to-end encryption.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors