Skip to content

Peer-to-peer file sharing app powered by WebRTC -- because I want to make sending files between ios and linux easier.

Notifications You must be signed in to change notification settings

rk234/libredrop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 

Repository files navigation

Libredrop

Libredrop is a peer-to-peer file sharing app powered by WebRTC, Vue, a custom efficient binary transfer protocol and Go Fiber (for the signaling server). Libredrop makes it quick and easy to send files between any two devices with a web browser over LAN, without the need for additional software.

Libredrop is still at an early stage and under active development.

Why is the signaling server needed?

For two peers to connect, an intermediary server is required for them to exchange messages to facilitate the connection. The signaling server serves as a way for peers to offer and respond to transfer requests and communicate the necessary information to create a WebRTC peer connection between them. The signaling server does NOT see any of the file data transferred between the two clients. The tranfer process itself is entirely peer-to-peer, and does not involve the server in any way.

Demo

image

Screencast.from.2024-09-18.10-41-32.mp4

Developing

Starting up the vite development server on localhost:

$ git clone https://github.com/rk234/libredrop.git
$ cd libredrop
$ cd libredrop-web
$ bun install
$ bun dev

Running the signaling server:

$ cd libredrop
$ cd signaling-server
$ go build
$ go run main.go

To expose the web app and signaling server on your LAN, run bun dev --host and pass in your machine's LAN IP as a cli argument to go run main.go {IP HERE}. Also, create a .env file in the libredrop-web directory with your LAN IP in the following format:

VITE_LAN_IP={IP HERE}

About

Peer-to-peer file sharing app powered by WebRTC -- because I want to make sending files between ios and linux easier.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published