Every day, I rely on qBittorrent, a robust and cross-platform torrent client that arguably outperforms its competitors. However, the interface, built on Qt Widgets, feels somewhat out of place on Windows 11. Personally, I found it lacking in certain areas, which I will elaborate on later. After an extensive search for a suitable alternative proved fruitless, I decided to embark on creating my own solution. Rebuilding the engine from scratch would be impractical; qBittorrent has been refined and tested over many years, making it unrealistic to replicate that effort alone in a reasonable timeframe. Thus, the focus shifted: retain the existing engine while crafting an appealing interface and integrating new features. Day by day, after a month of development, WinBitTorrent was born.
What is it, exactly?
WinBitTorrent is neither a fork nor a rewrite of qBittorrent. It operates on the qbittorrent-nox engine, the same core used in the original application, specifically version 5.2.3 with libtorrent 2.0.13. Instead of the traditional web interface or Qt Widgets, it features a native application built on WinUI 3 and the Windows App SDK 2.2, developed using .NET 8 following the MVVM pattern.
The application communicates with the engine through its Web API, typically used for browser access to qBittorrent. In this case, the API is accessed not by a browser but by a fully-fledged desktop application, complete with tabs, detailed information for each torrent, and speed graphs.
How does it work?
Upon its initial launch, the application spawns qbittorrent-nox.exe as a child process with a separate profile, binding its web interface to 127.0.0.1 on a randomly selected free port and running in headless mode. The engine generates a temporary administrator password at startup, which WinBitTorrent immediately replaces with a permanent API key stored securely in Windows Credential Vault. The temporary password is never written to disk and is purged from logs.
The child process is managed within a Windows Job object, ensuring it cannot outlive the parent application. If WinBitTorrent crashes or is terminated via the task manager, the engine will close alongside it. Should the engine terminate unexpectedly, the application will attempt to restart it without excessive retries.
In addition to the local engine, there is a mode for connecting to a remote qBittorrent instance, such as a home server, NAS, or seedbox, using either a username and password or an API key. The interface remains consistent across both scenarios, with only a few functions, like opening a folder in File Explorer, being exclusive to the local engine.
New features
Many users are likely already familiar with qBittorrent or similar clients, so replicating its existing features would not be particularly exciting. Instead, I will highlight some unique functionalities that the original lacks.
- In-app torrent search: Currently, integrated providers include RuTracker and The Pirate Bay. For RuTracker, there is a separate login authorization and optional proxy support in case the tracker is blocked by the ISP.
- Movie catalog via TMDB: The idea was to create a simplified version of Lampa, tailored for torrents without streaming capabilities. While this may seem excessive, it was a feature I personally desired, and I chose to keep it in the public version in case others find it useful. Users can click on any film, hit “Download,” select a tracker, and be redirected to the file listings for that tracker.
- Context menu editor: The original context menu (right-clicking on any torrent in the list) contains many options, most of which are rarely used by the average user. I added the ability to customize this menu, allowing users to retain only the options they need.
What’s next?
The application already includes an auto-update system, ensuring that users will be informed of new versions upon their next launch. Upcoming tasks include addressing any bugs that arise from initial installations and refining interface details that were overlooked during the month of development.
WinBitTorrent is entirely free and open-source. All information, including links to the source code and download options, can be found on the official website: https://winbittorrent.github.io/. If you encounter a bug or a logical flaw, please report it in the issues section on GitHub. Feedback regarding the interface is also welcome, as I appreciate any input. Thank you for your attention!