alt-sendme-fork

0

Описание

Отправляйте файлы и папки в любую точку мира без хранения в облаке — любого размера, любого формата, без учетных записей, без ограничений.

https://bazarow.ru

Языки

  • TypeScript65,7%
  • Rust27,9%
  • Kotlin2,4%
  • CSS1,7%
  • Swift1,2%
  • JavaScript0,9%
  • Остальные0,2%
README.md

Передача файлов не должна быть сложной

Это форк репозитория tonyantony300/alt-airdrop. Основная цель форка — доработка и стабилизация версий для Android и iOS.

⚠️ Мобильные версии (Android/iOS/iPadOS) находятся в стадии бета-тестирования. Основной функционал работает, однако возможны нестабильности. Поддержка iPad — экспериментальная.

Alt AirDrop Header

Alt AirDrop working demo

Бесплатный инструмент передачи файлов с открытым исходным кодом, который использует передовые технологии peer-to-peer, позволяя передавать файлы напрямую без их хранения на облачных серверах.

Поддерживает Windows, macOS, Linux, Android, iOS (включая iPadOS).

Почему полагаться на WeTransfer, Dropbox или Google Drive, когда вы можете надежно и легко передавать файлы напрямую, с end-to-end шифрованием и без раскрытия личной информации?

Функции

  • Отправка везде – Безупречно работает в локальных сетях или между континентами.
  • Прямая передача peer-to-peer – Отправляйте файлы прямо между устройствами, без облачного хранилища между ними.
  • End-to-end шифрование – Всегда включенная защита с QUIC + TLS 1.3 для прямой и обратной секретности.
  • Без учетных записей и личной информации – Передавайте файлы без регистрации и раскрытия личной информации.
  • Передавайте что угодно – Отправляйте файлы или папки любого размера и формата, проверенные с помощью проверок целостности на базе BLAKE3.
  • Возобновляемые передачи – Прерванные загрузки автоматически возобновляются с того же места.
  • Быстро и надежно – Способны насыщать многогигабитные соединения молниеносными передачами.
  • NAT traversal через QUIC – Безопасные низкозадержные соединения с использованием QUIC hole punching с зашифрованным резервным каналом.
  • Интеграция CLI – Совместимость с Sendme CLI.
  • Бесплатно и с открытым исходным кодом – Без затрат на загрузку, без ограничений размера и полностью управляется сообществом.

Windows (Scoop)

Поддерживаемые языки

🇺🇸 🇷🇺

Как это работает

  1. Перетащите ваш файл или папку – Alt AirDrop создает одноразовый код общего доступа (называется "билет").
  2. Поделитесь билетом через чат, электронную почту или текст.
  3. Ваш друг вставляет билет в свое приложение, и передача начинается.

Под капотом

Alt AirDrop использует Iroh для реализации peer-to-peer передачи файлов. Это современная модульная альтернатива технологиям, таким как WebRTC и libp2p.

Подробное техническое описание — как работает соединение, как устроены билеты, как поднять собственный relay-сервер — смотрите в IROH.md.

Важные концепции

  • Блобы (Blobs)
  • Билеты (Tickets)
  • Обнаружение пира (Peer Discovery), Hole-punching и NAT traversal
  • QUIC и End-to-end шифрование
  • Реле (Relays)

1. Блобы (Blobs)

Хранилище блобов, адресованное по содержимому, и передача.

iroh-blobs
реализует передачу request/response и потоковые передачи для блобов произвольного размера, используя BLAKE3-проверенные потоки и ссылки, адресованные по содержимому.

  • Blob: непрозрачная последовательность байтов (без встроенных метаданных).
  • Link: 32-байтовый хеш BLAKE3, который идентифицирует блоб.
  • HashSeq: блоб, который содержит последовательность ссылок (полезен для разбиения на части/деревьев).
  • Provider / Requester: поставщик предоставляет данные; запрашивающая сторона их получает. Конечная точка может быть обеими.

2. Билеты (Tickets)

Билеты – это способ обмена информацией о подключении между конечными точками iroh. Это единственный токен, который содержит все необходимое для подключения к другой конечной точке или для получения блоба. Содержит Ed25519 NodeIds: криптографическую идентификацию вашего устройства для аутентификации. Они также очень мощные. Стоит отметить, что эта настройка значительно лучше, чем полные системы peer-to-peer, которые транслируют ваш IP другим пирам. Вместо этого в iroh билеты используются для формирования "уютной сети" между пирами, с которыми вы явно хотите подключиться. Возможно перейти на "полный p2p" и настроить приложение на трансляцию деталей подключения, но билеты представляют лучший компромисс по умолчанию.

3. Обнаружение пира, NAT Traversal и Hole Punching

Пиры регистрируются на открытых общедоступных серверах реле при запуске, чтобы помочь преодолеть брандмауэры и NAT, обеспечивая установку соединения. После подключения Iroh использует QUIC hole punching для попытки установления прямого peer-to-peer соединения, обходя реле. Если прямое соединение возможно, взаимодействие происходит напрямую между пирами с end-to-end шифрованием; в противном случае реле временно работает как резервный вариант. Это позволяет гладкие надежные соединения между пирами в локальной сети и через интернет.

4. QUIC и шифрование

QUIC – это современный транспортный протокол, построенный на UDP, предназначенный для снижения задержки и повышения производительности веб-сайтов через TCP. Первоначально разработанный Google и теперь стандартизированный IETF как основу HTTP/3, он интегрирует шифрование TLS 1.3 непосредственно в протокол.

QUIC позволяет получить следующие суперспособности:

  • шифрование и аутентификацию
  • мультиплексирование потока
    • нет проблем с блокировкой в начале очереди
    • приоритеты потока
    • один общий контроллер перегруженности
  • зашифрованный, ненадежный транспорт датаграмм
  • установление соединения с нулевым временем приема при повторном подключении к конечной точке

5. Реле (Relays)

Alt AirDrop использует открытые общедоступные серверы реле для поддержания установления прямых соединений, для ускорения начального времени соединения и обеспечения резервного варианта, если прямые соединения между двумя конечными точками невозможны. Все соединения имеют end-to-end шифрование. Реле – это "просто ещё один сокет UDP" для отправки зашифрованных пакетов.

Дорожная карта 🚧

  • Улучшение удобства использования для дистрибутивов Linux, Windows и macOS
  • Неограниченные, надежные передачи с самостоятельно размещаемыми реле
  • Лучший анализ системы/сети в процессе передачи
  • Сборка Android приложения ✅ Готово (бета)
  • Сборка iOS приложения ✅ Готово (бета)

Решение проблем

1. Alt AirDrop не запускается на Windows (Runtime Edge WebView2 не найден)

Симптом

  • Когда вы дважды щелкаете на
    Alt AirDrop.exe
    , ничего не происходит. Окно не появляется, и в диспетчере задач процесс не отображается.
  • Это может повлиять как на стандартный установщик, так и на портативную версию.

Причина

  • Microsoft Edge WebView2 Runtime либо отсутствует, либо устарел, либо неправильно установлен в вашей системе.
    Alt AirDrop зависит от WebView2 для отображения интерфейса в Windows.

Как исправить

  1. Проверьте, установлен ли WebView2

    • Откройте Добавить или удалить программы (также известное как Приложения и компоненты) в Windows.
    • Ищите Microsoft Edge WebView2 Runtime.
  2. Установите или обновите WebView2

    • Загрузите WebView2 Runtime непосредственно с официального сайта Microsoft.
    • Если вы предпочитаете автономный установщик, загрузите автономный пакет и запустите его с правами администратора.
  3. Перезапустите Alt AirDrop

    • После установки/обновления WebView2 заново запустите
      Alt AirDrop.exe
      .
    • Если у вас по-прежнему возникают проблемы, перезагрузитесь и попробуйте снова.

Дополнительные советы

  • Если переустановка один раз не сработала, полностью удалите Edge WebView2, а затем переустановите его с правами администратора.
  • Убедитесь, что ваша установка Windows имеет последние обновления от Microsoft.

Установка для разработки

Предварительные требования

  • Rust 1.81+
  • Node.js 18+
  • npm или yarn

Начало работы

  1. Клонируйте репозиторий:

  2. Установите зависимости фронтенда:

  3. Установите Tauri:

  4. Запустите в режиме разработки:

  5. (Опционально) Установите проект для Android:

    Требования для Android разработки:

    • Android Studio 2023.1+
    • Android SDK API 24+
    • Android NDK r25c+
    • Java Development Kit (JDK) 11+

    Подробное руководство: Android_DEVELOPMENT.md

  6. (Опционально) Установите проект для iOS:

    Требования для iOS разработки:

    • macOS с установленным Xcode
    • Apple Developer Team ID (добавьте в
      src-tauri/tauri.ios.conf.json
      )
    • iOS SDK 13.0 или позже

    Подробное руководство: iOS_DEVELOPMENT.md

  7. Локальная сборка :

  8. Установка на Android :

  9. Запуск на iOS симуляторе :

  10. Запуск на Android эмуляторе :

  11. Сборка для iOS Release :

  12. Сборка для Google Play :

Локальное тестирование

Установите инструмент Sendme CLI, чтобы делиться файлами на одном устройстве и протестировать весь процесс передачи. Файлы не покидают ваше устройство — это работает как операция копирования.

Лицензия

AGPL-3.0