librqbit 9.0.1

The main library used by rqbit torrent client. The binary is just a small wrapper on top of it.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "librqbit"
version = "9.0.1"
authors = ["Igor Katson <igor.katson@gmail.com>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "The main library used by rqbit torrent client. The binary is just a small wrapper on top of it."
documentation = "https://docs.rs/librqbit"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/ikatson/rqbit"
resolver = "2"

[features]
_disable_disk_write_net_benchmark = []
_disable_reconnect_test = []
async-bt = ["async-backtrace"]
default = [
    "default-tls",
    "http-api-client",
]
default-tls = [
    "reqwest/default-tls",
    "sha1w/sha1-crypto-hash",
    "librqbit-core/sha1-crypto-hash",
]
disable-upload = []
http-api = [
    "axum",
    "tower-http",
]
http-api-client = []
miri = []
postgres = [
    "sqlx",
    "home",
]
prometheus = ["metrics-exporter-prometheus"]
rust-tls = [
    "reqwest/rustls",
    "sha1w/sha1-ring",
    "librqbit-core/sha1-ring",
]
storage_examples = []
storage_middleware = ["lru"]
timed_existence = []
tokio-console = [
    "console-subscriber",
    "tokio/tracing",
]
tracing-subscriber-utils = ["tracing-subscriber"]
upnp-serve-adapter = ["upnp-serve"]
watch = ["notify"]
webui = []

[lib]
name = "librqbit"
path = "src/lib.rs"

[[example]]
name = "custom_storage"
path = "examples/custom_storage.rs"

[[example]]
name = "simulate_traffic"
path = "examples/simulate_traffic.rs"
required-features = [
    "http-api",
    "webui",
    "tracing-subscriber-utils",
    "prometheus",
]

[[example]]
name = "ubuntu"
path = "examples/ubuntu.rs"

[dependencies.anyhow]
version = "1"

[dependencies.arc-swap]
version = "1.7"

[dependencies.async-backtrace]
version = "0.2"
optional = true

[dependencies.async-compression]
version = "0.4"
features = [
    "tokio",
    "gzip",
]

[dependencies.async-stream]
version = "0.3"

[dependencies.async-trait]
version = "0.1"

[dependencies.axum]
version = "0.8"
optional = true

[dependencies.axum-extra]
version = "0.12"
features = ["query"]

[dependencies.backon]
version = "1.5"

[dependencies.base64]
version = "0.23"

[dependencies.bencode]
version = "9.0.1"
default-features = false
package = "librqbit-bencode"

[dependencies.bitvec]
version = "1"

[dependencies.buffers]
version = "9.0.1"
package = "librqbit-buffers"

[dependencies.byteorder]
version = "1"

[dependencies.bytes]
version = "1"

[dependencies.clone_to_owned]
version = "9.0.1"
package = "librqbit-clone-to-owned"

[dependencies.console-subscriber]
version = "0.5"
optional = true

[dependencies.dashmap]
version = "6"

[dependencies.dht]
version = "9.0.1"
default-features = false
package = "librqbit-dht"

[dependencies.futures]
version = "0.3"

[dependencies.governor]
version = "0.10"

[dependencies.hex]
version = "0.4"

[dependencies.home]
version = "0.5"
optional = true

[dependencies.http]
version = "1"

[dependencies.intervaltree]
version = "0.2"

[dependencies.itertools]
version = "0.15"

[dependencies.librqbit-core]
version = "9.0.1"
default-features = false

[dependencies.librqbit-dualstack-sockets]
version = "0.7"
features = ["axum"]

[dependencies.librqbit-lsd]
version = "9.0.1"
default-features = false

[dependencies.librqbit-upnp]
version = "9.0.1"

[dependencies.librqbit-utp]
version = "0.7"
features = ["export-metrics"]

[dependencies.lru]
version = "0.18"
optional = true

[dependencies.memmap2]
version = "0.9"

[dependencies.metrics-exporter-prometheus]
version = "0.18"
optional = true
default-features = false

[dependencies.mime_guess]
version = "2"
default-features = false

[dependencies.nix]
version = "0.30"
features = ["uio"]

[dependencies.notify]
version = "8"
optional = true

[dependencies.parking_lot]
version = "0.12"

[dependencies.peer_binary_protocol]
version = "9.0.1"
default-features = false
package = "librqbit-peer-protocol"

[dependencies.rand]
version = "0.10"

[dependencies.regex]
version = "1"

[dependencies.reqwest]
version = "0.13"
features = [
    "json",
    "socks",
    "stream",
]
default-features = false

[dependencies.rlimit]
version = "0.11"

[dependencies.serde]
version = "1"
features = ["rc"]

[dependencies.serde_derive]
version = "1"

[dependencies.serde_json]
version = "1"

[dependencies.serde_urlencoded]
version = "0.7"

[dependencies.serde_with]
version = "3"

[dependencies.sha1w]
version = "9.0.1"
default-features = false
package = "librqbit-sha1-wrapper"

[dependencies.size_format]
version = "1"

[dependencies.socket2]
version = "0.6"

[dependencies.sqlx]
version = "0.9"
features = [
    "runtime-tokio",
    "macros",
    "postgres",
]
optional = true
default-features = false

[dependencies.thiserror]
version = "2"

[dependencies.tokio]
version = "1"
features = [
    "macros",
    "rt-multi-thread",
    "fs",
    "io-util",
]

[dependencies.tokio-socks]
version = "0.5"

[dependencies.tokio-stream]
version = "0.1"

[dependencies.tokio-util]
version = "0.7"
features = ["io"]

[dependencies.tower-http]
version = "0.7"
features = [
    "cors",
    "trace",
]
optional = true

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-subscriber]
version = "0.3"
features = [
    "json",
    "fmt",
    "env-filter",
]
optional = true
default-features = false

[dependencies.tracker_comms]
version = "9.0.1"
default-features = false
package = "librqbit-tracker-comms"

[dependencies.upnp-serve]
version = "9.0.1"
optional = true
default-features = false
package = "librqbit-upnp-serve"

[dependencies.url]
version = "2"
features = ["serde"]
default-features = false

[dependencies.urlencoding]
version = "2"

[dependencies.uuid]
version = "1"
features = ["v4"]

[dependencies.walkdir]
version = "2"

[dev-dependencies.pollster]
version = "1"

[dev-dependencies.tempfile]
version = "3"

[dev-dependencies.tokio-test]
version = "0.4"

[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
    "fmt",
    "std",
]
default-features = false

[build-dependencies.anyhow]
version = "1"

[target."cfg(windows)".dependencies.windows]
version = "0.62"
features = [
    "Win32",
    "Win32_System",
    "Win32_System_IO",
    "Win32_System_Ioctl",
]