Что: a791ca51f077b8ce7edac9c0294c20f5849d491d
Когда: 2022-11-25 15:33:42+03:00
Темы: bittorrent
github.com/anacrolix/torrent/cmd/torrent https://github.com/anacrolix/torrent Решил посмотреть какие вообще ещё варианты для BitTorrent-а то бывают. Сразу отметаются конечно же все кто GUI, а также кто использует JS-based WebUI. Transmission я уже не раз зарекался даже пытаться пользоваться. Уже не помню конкретику, но блог говорит о его ресурсоёмкости чудовищной (3ccff5a1e1f61e103b92dde4fc2e01c4affb9268, 59862ce0e889b45d6872ba974d906312bfbf0a01). rTorrent идёт нафиг из-за hardcode-а максимального размера файлов -- я помню что не мог скачать некоторые из-за этого (3ccff5a1e1f61e103b92dde4fc2e01c4affb9268). aria2... не без проблем (35f498b93a95b1d620889197042db8a941aa0428), хотя использую её уже не один год (59862ce0e889b45d6872ba974d906312bfbf0a01). И мне уже хочется обязательно иметь DHT, PEX и полную поддержку IPv6 (и при общении с трэкером и с DHT). Часть клиентов из-за этого отметена. Например изначально я использовал ctorrent -- он работал, без проблем, но даже UDP трэкеров не поддерживал, а только чистый оригинальный классический BitTorrent протокол. В итоге нашёл я только anacrolix-овскую реализацию на Go. Причём в ней явно сказано что она является библиотекой, а всякие cmd/* в ней только для примера использования. Готовых и устраивающих меня клиентов нет. Но cmd/torrent из её состава уже сейчас годится и для скачивания и для seeding-а вполне. Есть у меня тут один проблемный торрент, единственного peer-а которого aria2 банит -- тут работает без проблем. В SQLite3 или BoltDB хранит состояние скачанных кусочков. Параллельно может и качать при проверке целостности торрента. Кроме всех фич, даже uTP поддерживает. Пока правда полное отсутствие frontend-а к нему, кроме просто печати раз в несколько секунд прогресса скачивания. Эх... неужели снова, вновь и опять придётся писать самостоятельно это всё? Если для aria2 хотя бы просто надо переиспользовать её RPC (0c40b3f99ee554b301bd40b1b4d4c6390c746834), то тут уже все хотелки самостоятельно придётся добавлять. Благо это всё на Go и за десять секунд я нашёл например где задаётся список DHT bootstrap нод.
Сгенерирован: SGBlog 0.34.0