🌐 sendme — инструмент для peer-to-peer обмена файлами 🌐
Иногда хочется поделиться файлами с другими людьми напрямую с ноутбука или удаленной машины, не загружая их ни в какое облако, мессенджер или репозиторий. Для этого есть разные инструменты, но хочу рассказать именно про sendme, который построен на интересном фреймворке iroh.
TL;DR (sendme)
Если у вас есть Pixi (рекомендую), то больше ничего и не нужно, просто делаете так:
pixi exec sendme send
И сообщаете получателям TICKET, который напечатала эта команда. Получатели файлов делают так:
pixi exec sendme receive
После чего вы ждете завершения скачивания и останавливаете процесс. Готово! Файлы переданы напрямую получателям и не остались ни на каких third-party серверах.
Можно установить и использовать sendme без Pixi как написано тут.
Детали (iroh)
На самом деле sendme — это просто минимальный пример использования фреймворка iroh, который позволяет коммуницировать компьютерам безопасно и напрямую просто по сгенерированным ID вместо IP адресов, и почти без third-party серверов. "Почти", потому что промежуточный сервер все же нужен для установки первого контакта между машинами. Если контакт по каким-то причинам не установился, то промежуточный сервер служит прокси для передачи данных в зашифрованном виде, то есть сервер не видит и не сохраняет оригинальные данные.
У компании, которая разрабатывает iroh, есть публичные промежуточные серверы, благодаря которым и работают команды из TL;DR. Если для скорости и стабильности нужен собственный сервер, то можно либо заплатить за него, либо поднять свой такой сервер. А если вам интересно как это все вообще работает, чем отличается от WebRTC и прочее, то рекомендую поговорить с LLM или почитать раздел "How it works" и страницу "FAQ" в официальной документации.
Почему sendme
Вообще инструментов типа sendme много, но я в них не эксперт, поэтому не порекомендую что-то конкретное. Лично мне sendme приглянулся по таким причинам:
• Открытый код (для такого инструмента мне это кажется важным)
• Интересная технология под капотом
• Есть организация, которая за этим всем стоит
Ограничения
• sendme — это демо-приложение, код которого умещается в одном файле, и которое по дефолту полагается на сервера без гарантий на uptime и с rate limit'ами. Этого хватит для разовых пересылок, но не для сложных (production) сценариев. Для последних можно купить или поднять свой сервер.
• Технически количество получателей может быть любым, но вся нагрузка ляжет на вашу машину, плюс есть rate limit'ы публичных серверов. Так что транслировать файлы на весь интернет лучше не надо.
Иногда хочется поделиться файлами с другими людьми напрямую с ноутбука или удаленной машины, не загружая их ни в какое облако, мессенджер или репозиторий. Для этого есть разные инструменты, но хочу рассказать именно про sendme, который построен на интересном фреймворке iroh.
TL;DR (sendme)
Если у вас есть Pixi (рекомендую), то больше ничего и не нужно, просто делаете так:
pixi exec sendme send
И сообщаете получателям TICKET, который напечатала эта команда. Получатели файлов делают так:
pixi exec sendme receive
После чего вы ждете завершения скачивания и останавливаете процесс. Готово! Файлы переданы напрямую получателям и не остались ни на каких third-party серверах.
Можно установить и использовать sendme без Pixi как написано тут.
Детали (iroh)
На самом деле sendme — это просто минимальный пример использования фреймворка iroh, который позволяет коммуницировать компьютерам безопасно и напрямую просто по сгенерированным ID вместо IP адресов, и почти без third-party серверов. "Почти", потому что промежуточный сервер все же нужен для установки первого контакта между машинами. Если контакт по каким-то причинам не установился, то промежуточный сервер служит прокси для передачи данных в зашифрованном виде, то есть сервер не видит и не сохраняет оригинальные данные.
У компании, которая разрабатывает iroh, есть публичные промежуточные серверы, благодаря которым и работают команды из TL;DR. Если для скорости и стабильности нужен собственный сервер, то можно либо заплатить за него, либо поднять свой такой сервер. А если вам интересно как это все вообще работает, чем отличается от WebRTC и прочее, то рекомендую поговорить с LLM или почитать раздел "How it works" и страницу "FAQ" в официальной документации.
Почему sendme
Вообще инструментов типа sendme много, но я в них не эксперт, поэтому не порекомендую что-то конкретное. Лично мне sendme приглянулся по таким причинам:
• Открытый код (для такого инструмента мне это кажется важным)
• Интересная технология под капотом
• Есть организация, которая за этим всем стоит
Ограничения
• sendme — это демо-приложение, код которого умещается в одном файле, и которое по дефолту полагается на сервера без гарантий на uptime и с rate limit'ами. Этого хватит для разовых пересылок, но не для сложных (production) сценариев. Для последних можно купить или поднять свой сервер.
• Технически количество получателей может быть любым, но вся нагрузка ляжет на вашу машину, плюс есть rate limit'ы публичных серверов. Так что транслировать файлы на весь интернет лучше не надо.