Hello HN ,<p>I have worked on this for past few months . exatorrent is BitTorrent Client written in Go. It can be run locally or be hosted in Remote Server with good resources to use that Server as SeedBox. It is Single Completely Statically Linked Binary with Zero External Dependencies .<p>exatorrent is simple yet feature-rich . It is lightweight and light on resources. It comes with Beautiful Responsive Web Client written in Svelte and Typescript , but thanks to documented WebSocket API of exatorrent , you can also write your own client or integrate with other services if you want to.<p>exatorrent can operate in Optional Multi-User Mode administrated by admin user/s but it can successfully be used by Single-User as well. Torrented Files are stored in local disk of device where it's run, which are then retrievable or streamable via HTTP.<p>I hope you like it . It's Open Source .<p>Also HN , I am looking for Internship . If you're interested , please email me
<p><pre><code> johnchristopher@localhost ~/Download
$ ./exatorrent-linux-amd64
Address => :5000
Directory => exadir
[INFO] 2021/08/25 22:48:04 Adding Admin user with username "adminuser" and password "adminpassword"
[INFO] 2021/08/25 22:48:05 Torrent Client Created
[INFO] 2021/08/25 22:48:05 Starting server on :5000
[INFO] 2021/08/25 22:48:05 Loaded 20 trackers from https://ngosang.github.io/trackerslist/trackers_best.txt
[INFO] 2021/08/25 22:48:05 Loaded 20 trackers in total , eliminating duplicates
[INFO] 2021/08/25 22:48:05 Added Loaded Trackers to Torrents
</code></pre>
Extra points for logging relevant info when first starting it up and not taking me on a hunt in a readme or something :).
Tangential, I think adding support of <a href="http://webtorrent.io/" rel="nofollow">http://webtorrent.io/</a> by bridging webtorrent peer with bittorent peer would greatly increase/revive the popularity of the protocol
Let's assume I want to run this on a Hetzner box. And let's assume all my activity is legit torrenting. Say, sharing linux distros. They are still not exactly going to be over the moon with my seedbox running on their servers, due to torrenting stigma.<p>You can replace 'Hetzner' with any VPS service here, really. What measures can one take to 'hide' torrenting activity?
What could be interesting is if you were able to add wireguard-go into your project.<p>It would be nice to have a single binary that can run traffic through a VPN and something I have not see done before.
That looks great, the only think that would make it even better for me would be a section to monitor RSS feeds and automatically download torrents from a set of rules into specific directories (preferably with the ability to unpack the download if the original files are compresses/splitted).<p>But that probably goes beyond the scope of this project.<p>Very cool nonetheless!
I used to torrent a lot, but gave up after my ISP adopted CGNAT and I lost the capability to forward ports locally. Do people adapted bittorrent to IPv6, since then, to circunvent this problem, or are we still stuck with IPv4 in this space?
Impressive work. Did you implement the bittorrent protocol from scratch? which BEP specifically?<p><a href="https://www.bittorrent.org/beps/bep_0000.html" rel="nofollow">https://www.bittorrent.org/beps/bep_0000.html</a>
Very cool project. I’d love to see more Go projects pop up because they’re absolutely great to learn Go. Have you had a chance to benchmark the maximal throughput? (I.e. 100MB/s on a 1Gbps max?)<p>I’ve been using Synapse (<a href="https://synapse-bt.org/synapse/" rel="nofollow">https://synapse-bt.org/synapse/</a>, a torrent client written in Rust) recently and so far it was the only client fully saturating a 10Gbps NIC.