#download #bittorrent #client #rqbit #session #top #backbone

librqbit

The main library used by rqbit torrent client. The binary is just a small wrapper on top of it.

17 releases (stable)

new 5.6.1 Apr 23, 2024
5.6.0 Apr 7, 2024
5.5.4 Mar 29, 2024
5.4.1 Jan 3, 2024
2.2.2 Nov 16, 2023

#856 in Web programming

Download history 42/week @ 2024-01-01 20/week @ 2024-02-12 17/week @ 2024-02-19 50/week @ 2024-02-26 46/week @ 2024-03-04 48/week @ 2024-03-11 166/week @ 2024-03-18 282/week @ 2024-03-25 203/week @ 2024-04-01 64/week @ 2024-04-08 27/week @ 2024-04-15

588 downloads per month
Used in 2 crates

Apache-2.0

1MB
17K SLoC

Rust 15K SLoC // 0.0% comments TSX 2K SLoC // 0.0% comments TypeScript 465 SLoC // 0.1% comments JavaScript 22 SLoC // 0.7% comments

librqbit

A fully featured, easy to use torrent downloading library used as a backbone of rqbit.

Basic example

See examples on GitHub.

Documentation

librqbit at docs.rs


lib.rs:

This crate provides everything necessary to download torrents.

Quick usage example

use librqbit::*;

tokio_test::block_on(async {
    let session = Session::new("/tmp/where-to-download".into()).await.unwrap();
    let managed_torrent_handle = session.add_torrent(
       AddTorrent::from_url("magnet:?xt=urn:btih:cab507494d02ebb1178b38f2e9d7be299c86b862"),
       None // options
    ).await.unwrap().into_handle().unwrap();
    managed_torrent_handle.wait_until_completed().await.unwrap();
})

Overview

The main type to start off with is Session.

It also proved useful to use the [Api] when building the rqbit desktop app, as it provides a facade that works with simple serializable types.

Dependencies

~19–37MB
~596K SLoC