gabrieldemian / vincenzo

A BitTorrent client with vim-like keybindings and a terminal based UI.
https://github.com/gabrieldemian/vincenzo
MIT License
145 stars 7 forks source link
bittorrent bittorrent-client

Vincenzo

Vincenzo is a BitTorrent client with vim-like keybindings and a terminal based UI.

Latest Version MIT

image

Introduction

Vincenzo aims to be a fast, lightweight, and multi-platform client.

Another goal is for users to be able to use the library to create any other kind of software, that is powered by the BitTorrent protocol.

The official UI binary is very niched, targeting a very specific type of user: someone who loves using the terminal, and vim keybindings. Altough users could create other UIs using the library.

Vincenzo offers 3 binaries and 1 library:

Features

How to use

Downloading a torrent using the main binary (the flags are optional and could be omitted in favour of the configuration file).

vcz -d "/tmp/download_dir" -m "<magnet link here>" -q

Configuration

The binaries read a toml config file. It is located at the default config folder of your OS.

Default config file:

download_dir = "/home/alice/Downloads"
# default
daemon_addr = "127.0.0.1:3030"

Daemon and UI binaries

Users can control the Daemon by using CLI flags that work as messages.

Let's say on one terminal you initiate the daemon: vczd. Or spawn as a background process so you can do everything on one terminal: vczd &.

And you open a second terminal to send messages to the daemon, add a torrent: vczd -m "magnet:..." and then print the stats to stdout vczd --stats.

You can also run the UI binary (maybe remotely from another machine) to control the Daemon: vcz_ui --daemon-addr 127.0.0.1:3030.

CLI flags of Daemon ``` Usage: vczd [OPTIONS] Options: --daemon-addr The Daemon will accept TCP connections on this address -d, --download-dir The directory in which torrents will be downloaded -m, --magnet Download a torrent using it's magnet link, wrapped in quotes -q, --quit-after-complete If the program should quit after all torrents are fully downloaded -s, --stats Print all torrent status on stdout -h, --help Print help -V, --version Print version ```

Supported BEPs

Roadmap

Donations

I'm working on this alone, if you enjoy my work, please consider a donation here.