Go Back

Vincenzo

Vincenzo is a BitTorrent client, terminal based UI, with vim-like keybindings, written in Rust.

Prelude

This is a personal project of mine, free and open source.

What

Vincenzo is a BitTorrent client, in other words, it implements the BitTorrent protocol. Some of the features are: Written in Rust, multi-threaded, multi-platform, async I/O, terminal based UI, among others.

Why

On my journey to better my technical skills and deepen my knowledge, I have found that the best way to accomplish those, is to build something complex from scratch and learn as you go.

And naturally, the more complex the project, the more you learn. The BitTorrent protocol fits well in this description (if done in an optimal way). This is one of the reasons why I’ve decided to create a BitTorrent client, the second reason is that I love decentralized systems.

BitTorrent?

BitTorrent is a decentralized peer-to-peer file-sharing protocol. All peers cooperate to share files on the network, downloading and uploading data from all. The advantages of this, is that the more peers exist on the network, the faster the download rate, also increasing availability, censorship resistance, etc.

Torrents are used for legal activities as well. Many Linux distros are shared by torrents, companies also use BitTorrent protocol to share updates of software, like Facebook, Microsoft, and Blizzard, for example.

Results

Never in my life have I have never learned so fast when developing any project. This was my own personal college. Some of the things I had to learn/improved, to name a few: