Vincenzo is a BitTorrent client with vim-like keybindings and a terminal based UI. Torrents can be downloaded using the CLI or UI.
- Terminal based UI
- Vim-like keybindings
- Multi-platform
- Magnet links support
- UDP connections with trackers, TCP connections with peers
- Multithreaded. One OS thread specific for I/O
An example on how to download a torrent using the CLI. Please use the "--help" flag to read the descriptions of the CLI flags.
cargo run -- -d "/tmp/btr" -m "<insert magnet link here>" -q
Or
vcz -d "/tmp/btr" -m "<insert magnet link here>" -q
During the first startup, a default configuration file is created.
The configuration file is located at the default config folder of your OS. At the moment, the only configuration option is: download_dir
Linux: ~/.config/vincenzo/config.toml
Windows: C:\Users\Alice\AppData\Roaming\Vincenzo\config.toml
macOS: /Users/Alice/Library/Application Support/Vincenzo/config.toml
- BEP 0003 - The BitTorrent Protocol Specification
- BEP 0009 - Extension for Peers to Send Metadata Files
- BEP 0010 - Extension Protocol
- BEP 0015 - UDP Tracker Protocol
- BEP 0023 - Tracker Returns Compact Peer Lists
[x] - Initial version of UI.
[x] - Download pipelining.
[x] - Endgame mode.
[ ] - Use a buffered I/O strategy to reduce the number of writes on disk.
[ ] - Choking algorithm.
[ ] - Anti-snubbing.
[ ] - Resume torrent download.
[ ] - Change piece selection strategy.
[ ] - Select files to download.
[ ] - Support streaming of videos/music on MPV.
[ ] - ...
This program is well-tested and I'm always improving the tests.