PairDrop README

The project's README from github.com/schlagmichdoch/PairDrop. As one markdown file: README.md.

Logo

Send it, with PairDrop

Local file sharing in your web browser.
Inspired by Apple's AirDrop.
Fork of Snapdrop.

Report a bug
Request feature


Features

File sharing on your local network that works on all platforms.

Send a file from your phone to your laptop?
Share photos in original quality with friends using Android and iOS?
Share private files peer-to-peer between Linux systems?

Screenshot GIF showing PairDrop in use

Differences to the Snapdrop it is based on

View all differences

Paired Devices and Public Rooms — Internet Transfer

  • Transfer files over the Internet between paired devices or by entering temporary public rooms.
  • Connect to devices in complex network environments (public Wi-Fi, company network, iCloud Private Relay, VPN, etc.).
  • Connect to devices on your mobile hotspot.
  • Devices outside of your local network that are behind a NAT are auto-connected via the PairDrop TURN server.
  • Devices from the local network, in the same public room, or previously paired are shown.

Persistent Device Pairing

Always connect to known devices

  • Pair devices via a 6-digit code or a QR-Code.
  • Paired devices always find each other via shared secrets independently of their local network.
  • Pairing is persistent. You find your devices even after reopening PairDrop.
  • You can edit and unpair devices easily.

Temporary Public Rooms

Connect to others in complex network situations, or over the Internet.

  • Enter a public room via a 5-letter code or a QR-code.
  • Enter a public room to temporarily connect to devices outside your local network.
  • All devices in the same public room see each other.
  • Public rooms are temporary. Closing PairDrop leaves all rooms.

Improved UI for Sending/Receiving Files

  • Files are transferred after a request is accepted. Files are auto-downloaded upon completing a transfer, if possible.
  • Multiple files are downloaded as a ZIP file
  • Download, share or save to gallery via the "Share" menu on Android and iOS.
  • Multiple files are transferred at once with an overall progress indicator.

Send Files or Text Directly From Share Menu, Context Menu or CLI

Other Changes

Translate PairDrop on Hosted Weblate

Translation status

Built with the following awesome technologies:

FAQ

Host your own instance with Docker or Node.js.

Support

Buy me a coffee

PairDrop is libre, and always will be.
If you find it useful and want to support free and open-source software, please consider donating using the button above.
I footed the bill for the domain and the server, and you can help create and maintain great software by supporting me.
Thank you very much for your contribution!

Contributing

Feel free to open an issue or a pull request, following the Contributing Guidelines.

PairDrop (schlagmichdoch/PairDrop)

Searching Database…

11.6K ·GitHub
Что это такое?PairDrop — это веб-приложение для передачи файлов и текста между устройствами в одной локальной сети. Оно вдохновлено Apple AirDrop и создано как форк Snapdrop. Также поддерживаются сопряжение устройств и временные публичные комнаты для передачи файлов через Интернет.
Это настольное приложение или то, что открывается в браузере?Это прогрессивное веб-приложение (PWA), которое работает в любом современном браузере. Интерфейс написан на Vanilla HTML5/JS/CSS, а серверная часть на Node.js обрабатывает сигнальный обмен через WebSocket.
Как начать обмениваться с ним файлами?Откройте PairDrop в браузере на двух устройствах в одной сети, и они автоматически найдут друг друга. Чтобы запустить собственный сервер, используйте Docker или Node.js.
Что нужно для собственного сервера?Нужна среда Node.js (версии 15 и выше). Сервер использует пакеты express, ws, express-rate-limit, ua-parser-js и unique-names-generator. Также доступен образ Docker.
Работает ли передача файлов через открытый Интернет по умолчанию?По умолчанию передача опирается на поиск устройств в локальной сети. Чтобы связаться с устройствами за пределами своей локальной сети, их нужно сопрячь или подключить через публичную комнату. Устройства за NAT подключаются автоматически через собственный TURN-сервер PairDrop.
Кому полезен PairDrop?Всем, кто хочет переносить файлы между телефонами, ноутбуками и компьютерами разных операционных систем без установки приложений и создания учётной записи, например передавать фото между Android и iOS или файлы между компьютерами на Linux.
Можно ли запустить собственный сервер PairDrop, например на Raspberry Pi?Да, PairDrop можно развернуть у себя в локальной сети, например на Raspberry Pi, и настроить собственные серверы STUN/TURN.
Соединение прямое между устройствами или сервер видит мои файлы?Передача идёт напрямую между устройствами через WebRTC. Сервер Node.js занимается только сигнальным обменом и поиском устройств через WebSocket, а содержимое файлов он не видит.
Как работает постоянное сопряжение устройств?Два устройства сопрягаются один раз с помощью 6-значного или QR-кода. После этого они автоматически находят друг друга в любой сети по общим секретам, даже после повторного открытия приложения. Сопряжения можно изменять и удалять.
Для чего нужны публичные комнаты?Публичные комнаты позволяют временно подключаться устройствам, которые не сопряжены между собой или находятся в разных локальных сетях: достаточно ввести общий 5-буквенный код или отсканировать QR-код. Это удобно для разовых передач через Интернет или в сложных сетях, например в публичном Wi-Fi.
Можно ли отправлять файлы, не открывая сначала веб-страницу?Да, PairDrop интегрируется с меню «Поделиться» и контекстным меню ОС: файлы можно отправлять прямо из контекстного меню по правой кнопке мыши в Windows и Ubuntu (Nautilus), через меню «Поделиться» на iOS и Android или с помощью командной строки.
Чем PairDrop отличается от оригинального Snapdrop, форком которого он является?PairDrop добавляет постоянное сопряжение устройств, временные публичные комнаты для передачи через Интернет, автоматическое скачивание и упаковку нескольких файлов в ZIP, интеграцию с меню «Поделиться», контекстным меню и командной строкой, настройку отображаемого имени и серверную часть, написанную только на Node.js, а также другие улучшения стабильности и интерфейса.
Size
20.3 MB
Stars
11.6K
Age
3y
Commits · 90 Days