[Проект] BitTorrent or Gnutella Client

  1. Здравейте! Имам две идеи за проект, все свързани с p2p file sharing.

    1. Gnutella client
    2. BitTorrent client

    Следвайки вашите насоки, клоня повече към втората идея. Друг фактор е, това че Gnutella вече е остарял протокол. Търсих подобни проекти и изглежда за gnutella има един читав (sourabhdesai/gotella), който използва стара версия на протокола.

    Колкото до торент клиета, видях няколко такива. Повечето са недовършени и има място за подобрение. Не мисля да имплемтирам целия BitTorrent протокол, тъй като вече има добри библиотеки за това (jackpal/Taipei-Torrent, anacrolix/torrent). Ще пробвам да поддържам magnet link-ове, multiple торенти с приоритет на файловете, ограничение на броя връзки и скоростта, избиране на директория за изтеглените и теглещите се файлове, автоматично добавяне на торенти и избиране на порт за входящите връзки. Ако остане време за това бих искал да добавя поддръжка на DHT, PeX и теглене през proxy.

    За интерфейс не съм сигурен какво да ползвам и се надявам да препоръчате GUI библиотека или някаква алтернатива на такава.

  2. аз одобрявам всички торент клиенти :P. Ако ползваш библиотеката на anacrolix, голяма част от нещата дето ги искаш са готови.

    За интерфейс ти препоръчвам да го направиш на daemon с API и да направиш интерфейс срещу API-то (може даже да ползваш go-swagger). Там вече може да е web/cli/tui/gui и т.н.

    За web ти препоръчвам net/http

    За cli - flag, ако много искаш принципно има разни по лъскави библиотечки като spf13/cobra , alecthomas/kingpin и други.

    За tui nsf/termbox-go

    За gui ... не мога :) therecipe/qt по мои наблюдения има най много движение и най-отдавна, но това не значи че работи добре и/или ще ти свърши работа нито обратното :D.

Трябва да сте влезли в системата, за да може да отговаряте на теми.