3 unstable releases

0.2.0 Jun 19, 2022
0.1.1 Feb 19, 2020
0.1.0 Sep 22, 2019

#53 in #bittorrent

MIT license

55KB
1K SLoC

qbittorrent

This is an asynchronous api library for the popular bittorrent client qbittorrent.

Implementation

Features of this library are implemented as-needed. If you require certain methods create an issue or submit a pull request.

Example

use qbittorrent::Api;

#[tokio::main(flavor = "current_thread")]
async fn main() {
	let username = "your webui username";
	let password = "your webui username";
	let address = "http://localhost:8080";

	let api = Api::new(username, password, address).await.unwrap();

	let global_speeds = api.get_global_transfer_info().await.unwrap();
	println!("current download rate is at {} bytes / sec", global_speeds.dl_info_speed());

	let torrent_list = api.get_torrent_list().await.unwrap();
	println!("qbittorrent is managing {} torrents", torrent_list.len());
}

Progress

Authentication
	✅ Login
	❌ Logout
Application
	❌ Get application version
	❌ Get API version
	❌ Get build info
	❌ Shutdown application
	❌ Get application preferences
	❌ Set application preferences
	❌ Get default save path
Log
	❌ Get log
	❌ Get peer log
Sync
	✅ Get main data
	Get torrent peers data
Transfer info
	✅ Get global transfer info
	✅ Get alternative speed limits state
	✅ Toggle alternative speed limits
	❌ Get global download limit
	❌ Set global download limit
	❌ Get global upload limit
	❌ Set global upload limit
	❌ Ban peers
Torrent management
	✅ Get torrent list
	✅ Get torrent generic properties
	✅ Get torrent trackers
	❌ Get torrent web seeds
	✅ Get torrent contents
	❌ Get torrent pieces' states
	❌ Get torrent pieces' hashes
	❌ Pause torrents
	✅ Resume torrents
	❌ Delete torrents
	❌ Recheck torrents
	❌ Reannounce torrents
	❌ Edit trackers
	❌ Remove trackers
	❌ Add peers
	✅ Add new torrent
	❌ Add trackers to torrent
	❌ Increase torrent priority
	❌ Decrease torrent priority
	❌ Maximal torrent priority
	❌ Minimal torrent priority
	❌ Set file priority
	❌ Get torrent download limit
	❌ Set torrent download limit
	❌ Set torrent share limit
	❌ Get torrent upload limit
	❌ Set torrent upload limit
	❌ Set torrent location
	❌ Set torrent name
	❌ Set torrent category
	✅ Get all categories
	❌ Add new category
	❌ Edit category
	❌ Remove categories
	❌ Add torrent tags
	❌ Remove torrent tags
	❌ Get all tags
	❌ Create tags
	❌ Delete tags
	❌ Set automatic torrent management
	❌ Toggle sequential download
	❌ Set first/last piece priority
	❌ Set force start
	❌ Set super seeding
RSS (experimental)
	❌ Add folder
	❌ Add feed
	❌ Remove item
	❌ Move item
	❌ Get all items
	❌ Set auto-downloading rule
	❌ Rename auto-downloading rule
	❌ Remove auto-downloading rule
	❌ Get all auto-downloading rules
Search
	❌ Start search
	❌ Stop search
	❌ Get search status
	❌ Get search results
	❌ Delete search
	❌ Get search categories
	❌ Get search plugins
	❌ Install search plugin
	❌ Uninstall search plugin
	❌ Enable search plugin
	❌ Update search plugins

Dependencies

~4–16MB
~239K SLoC