# cowbell/sharedrop

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/cowbell-sharedrop).**

10,735 stars · 864 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/cowbell/sharedrop
- Homepage: https://www.sharedrop.io
- awesome-repositories: https://awesome-repositories.com/repository/cowbell-sharedrop.md

## Description

Sharedrop is a browser-based file drop application for transferring files directly between devices without requiring software installation or account registration. It uses WebRTC to establish peer-to-peer data channels, allowing files to be exchanged between different operating systems without routing traffic through a central server.

The project provides mechanisms for both local and remote connectivity. It identifies active users sharing the same public IP address for immediate local device discovery and allows the creation of private sharing rooms via unique session links for users on different networks.

All transfers are secured with end-to-end encryption to ensure only the intended sender and receiver can access the data. The system manages data as binary blobs within the browser to handle large file transfers.

## Tags

### Networking & Communication

- [WebRTC Data Channels](https://awesome-repositories.com/f/networking-communication/peer-to-peer-data-exchange/data-channel-establishment/webrtc-data-channels.md) — Establishes direct browser-to-browser data channels using WebRTC for serverless file transfers.
- [Signaling Servers](https://awesome-repositories.com/f/networking-communication/peer-to-peer-networking/signaling-servers.md) — Utilizes a signaling server to exchange connection metadata before establishing direct peer-to-peer links.
- [Local Peer-to-Peer](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/bittorrent-file-sharing/file-sharing/local-peer-to-peer.md) — Enables devices on the same local network to detect each other and exchange files. ([source](https://github.com/cowbell/sharedrop#readme))
- [IP Address Discovery Tools](https://awesome-repositories.com/f/networking-communication/ip-address-discovery-tools.md) — Automatically identifies available local peers by grouping users sharing the same public IP address.
- [Local Network Discovery](https://awesome-repositories.com/f/networking-communication/local-network-discovery.md) — Identifies and displays active users on the same public IP address to facilitate immediate transfers. ([source](https://github.com/cowbell/sharedrop#readme))
- [Private Sharing Rooms](https://awesome-repositories.com/f/networking-communication/network-file-sharing/private-sharing-rooms.md) — Creates secure temporary rooms for encrypted file sharing with specific users across different networks.
- [Ephemeral Exchange Rooms](https://awesome-repositories.com/f/networking-communication/session-based-connectivity/ephemeral-exchange-rooms.md) — Generates unique identifiers to create private sharing rooms for users on different networks.

### Security & Cryptography

- [End-to-End Encryption](https://awesome-repositories.com/f/security-cryptography/privacy-data-protection/data-encryption/end-to-end-encryption.md) — Implements end-to-end encryption to ensure only the intended sender and receiver can access transferred files.

### Web Development

- [WebRTC Transfer Tools](https://awesome-repositories.com/f/web-development/file-transfer-clients/webrtc-transfer-tools.md) — Moves files directly between peers using WebRTC for high speed and low latency.
- [Browser-Based File Transfers](https://awesome-repositories.com/f/web-development/peer-to-peer-transfer-engines/browser-based-file-transfers.md) — Provides the capability to send files directly between devices using a browser-based P2P connection. ([source](https://github.com/cowbell/sharedrop#readme))
- [Browser-Based P2P Transfers](https://awesome-repositories.com/f/web-development/peer-to-peer-transfer-engines/browser-based-p2p-transfers.md) — Sends files directly between browsers using WebRTC for peer-to-peer data transmission.
- [Local File Sharing PWAs](https://awesome-repositories.com/f/web-development/progressive-web-apps/local-file-sharing-pwas.md) — Allows sending files between devices on the same network using a browser without central server uploads.

### Programming Languages & Runtimes

- [Binary Blob Management](https://awesome-repositories.com/f/programming-languages-runtimes/binary-blob-management.md) — Uses binary blob management to handle large file transfers directly within the browser memory.

### Part of an Awesome List

- [File Sharing](https://awesome-repositories.com/f/awesome-lists/media/file-sharing.md) — Serverless file transfer between devices on the same network.
