Typed, Rust-ey bindings for the XMLRPC rtorrent API
The top-level structure is Server
, which represents a logical
XMLRPC endpoint. (For now, only HTTP endpoints are supported, but that
could be expanded relatively easily.)
One can get a list of loaded torrents via Server::download_list()
.
Download
objects represent a loaded torrent (identified by SHA1
digest, in hex).
For each Download
, there are a number of accessors for attributes on
that loaded torrent. (Accessors on Download
correspond to the d.*
methods in the rtorrent API.) Additionally, one can get a list of
trackers for that download with Download::trackes()
.
Tracker
objects represent a specific tracker for
a given download. (Accessors on Tracker
correspond to the
t.*
methods in the rtorrent API.) One example is
Tracker::url()
.
We can get the Peer
s for a loaded torrent via the
Download::peers()
method. Peers represent other participants in the
swarm for that particular torrent. (Accessors on Peer
correspond to
the p.*
methods in the rtorrent API.) One example is
Peer::address()
.
```rust use rtorrentxmlrpcbindings as rtorrent;
fn main() -> Result<()> { let handle = rtorrent::Server::new("http://1.2.3.4/RPC2"); for dl in handle.downloadlist()? { println!("{}: {}", dl.name()?, if dl.isactive()? { "active" } else { "inactive" }); } Ok(()) } ```