Find a file
2025-08-30 20:24:19 +02:00
.github add new rule 2018-01-10 08:38:21 -05:00
.vscode more 2018-04-21 12:40:43 -04:00
cmd go fmt 2021-12-18 22:18:26 -05:00
contrib feat: docker entrypoint accepting env vars for configuring 2025-08-30 20:24:19 +02:00
lib Fix race conditions. 2025-08-17 16:37:15 -04:00
.dir-locals.el add emacs .dir-locals.el for setting GOPATH 2017-03-27 10:41:41 -04:00
.gitignore more cleanup 2020-10-18 05:51:35 -04:00
.tool-versions Fix inbound connections and other fixes and improvements: 2025-08-16 11:36:04 -04:00
CODE_OF_CONDUCT.md add CoC(k) 2017-11-13 08:58:34 -05:00
config.cson add atom config, update gitignore 2017-03-27 11:26:17 -04:00
docker-entrypoint.sh feat: docker entrypoint accepting env vars for configuring 2025-08-30 20:24:19 +02:00
Dockerfile feat: docker entrypoint accepting env vars for configuring 2025-08-30 20:24:19 +02:00
go.mod Fix inbound connections and other fixes and improvements: 2025-08-16 11:36:04 -04:00
go.sum Fix inbound connections and other fixes and improvements: 2025-08-16 11:36:04 -04:00
LICENSE CURRENT YEAR 2018-01-01 16:47:28 -05:00
main.go go fmt 2021-12-18 22:18:26 -05:00
Makefile Fix typo in install target of Makefile 2025-04-15 13:22:06 -04:00
README.md Update README.md 2025-08-16 11:46:02 -04:00
release.sh update release.sh to be able to use custom signer gpg key id 2023-02-18 09:08:23 -05:00

XD

BitTorrent Client written in GO (as a joke)

XD

Packaging status

Downloads

MIT License Logo is ebin

Features

Current:

  • i2p only, no chances of cross network contamination, aka no way to leak IP.
  • works with i2pd and Java I2P using the SAM api
  • Magnet URIs
  • memes

Soon:

  • transmission compatible RPC

Eventually:

  • DHT Support
  • Maggot Support

Dependencies

  • GNU Make
  • GO 1.16 or higher

Building

right now the best way to build is with make

$ git clone https://github.com/majestrate/XD
$ cd XD
$ make

if you do not want to build with embedded webui instead run:

$ make no-webui

you can build with go get using:

$ go get -u -v github.com/majestrate/XD

please note that using go get disables the webui.

or use go get:

$ go get -u -v -tags lokinet github.com/majestrate/XD

cross compile for Raspberry PI

Set GOARCH and GOOS when building with make:

$ make GOARCH=arm GOOS=linux

Usage

To autogenerate a new config and start:

$ ./XD torrents.ini

after started put torrent files into ./storage/downloads/ to start downloading

to seed torrents put data files into ./storage/downloads/ first then add torrent files

if you compiled with web ui it will be up at http://127.0.0.1:1776/

To use the RPC Tool symlink XD to XD-CLI

$ ln -s XD XD-CLI

to list torrents run:

$ ./XD-CLI list

to add a torrent from http server:

$ ./XD-CLI add http://somehwere.i2p/some_torrent_that_is_not_fake.torrent

Optionally on non windows systems you can install XD to /usr/local/

# make install

Or your home directory, make sure $HOME/bin is in your $PATH

$ make install PREFIX=$HOME

Tunnel length and quanity along with all other i2cp options are set in the i2p section of the configuration:

[i2p]
inbound.length=1
outbound.length=1