rqbit/crates/librqbit/Cargo.toml
2025-01-06 17:37:40 +00:00

128 lines
4.1 KiB
TOML

[package]
name = "librqbit"
version = "8.0.0"
authors = ["Igor Katson <igor.katson@gmail.com>"]
edition = "2021"
description = "The main library used by rqbit torrent client. The binary is just a small wrapper on top of it."
license = "Apache-2.0"
documentation = "https://docs.rs/librqbit"
repository = "https://github.com/ikatson/rqbit"
readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
default = ["default-tls"]
tokio-console = ["console-subscriber", "tokio/tracing"]
http-api = ["axum", "tower-http"]
upnp-serve-adapter = ["upnp-serve"]
webui = []
timed_existence = []
default-tls = [
"reqwest/default-tls",
"sha1w/sha1-crypto-hash",
"bencode/sha1-crypto-hash",
"librqbit-core/sha1-crypto-hash",
]
rust-tls = [
"reqwest/rustls-tls",
"sha1w/sha1-ring",
"sha1w/sha1-ring",
"bencode/sha1-ring",
"librqbit-core/sha1-ring",
]
storage_middleware = ["lru"]
storage_examples = []
tracing-subscriber-utils = ["tracing-subscriber"]
postgres = ["sqlx", "home"]
async-bt = ["async-backtrace"]
watch = ["notify"]
disable-upload = []
[dependencies]
# sqlx and home are pinned so that we can compile on older Rusts
sqlx = { version = "=0.8.2", features = [
"runtime-tokio",
"macros",
"postgres",
], default-features = false, optional = true }
home = { version = "=0.5.5", optional = true }
bencode = { path = "../bencode", default-features = false, package = "librqbit-bencode", version = "3" }
tracker_comms = { path = "../tracker_comms", default-features = false, package = "librqbit-tracker-comms", version = "2.1" }
buffers = { path = "../buffers", package = "librqbit-buffers", version = "4.2" }
librqbit-core = { path = "../librqbit_core", default-features = false, version = "4.1" }
clone_to_owned = { path = "../clone_to_owned", package = "librqbit-clone-to-owned", version = "3" }
peer_binary_protocol = { path = "../peer_binary_protocol", default-features = false, package = "librqbit-peer-protocol", version = "4.2" }
sha1w = { path = "../sha1w", default-features = false, package = "librqbit-sha1-wrapper", version = "4.1" }
dht = { path = "../dht", package = "librqbit-dht", default-features = false, version = "5.2.0" }
librqbit-upnp = { path = "../upnp", version = "1" }
upnp-serve = { path = "../upnp-serve", package = "librqbit-upnp-serve", default-features = false, version = "1", optional = true }
tokio = { version = "1", features = [
"macros",
"rt-multi-thread",
"fs",
"io-util",
] }
governor = "0.8"
console-subscriber = { version = "0.4", optional = true }
axum = { version = "0.8", optional = true }
tower-http = { version = "0.6", features = ["cors", "trace"], optional = true }
tokio-stream = "0.1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_urlencoded = "0.7"
anyhow = "1"
itertools = "0.14"
http = "1"
regex = "1"
reqwest = { version = "0.12", default-features = false, features = [
"json",
"socks",
] }
urlencoding = "2"
byteorder = "1"
bincode = "1"
bitvec = "1"
parking_lot = "0.12"
tracing = "0.1.40"
size_format = "1"
rand = "0.8"
tracing-subscriber = { version = "0.3", default-features = false, features = [
"json",
"fmt",
"env-filter",
], optional = true }
uuid = { version = "1.2", features = ["v4"] }
futures = "0.3"
url = { version = "=2.5.2", default-features = false } # can't upgrade yet until min version is Rust 1.81, see https://github.com/servo/rust-url/issues/992
hex = "0.4"
backoff = "0.4.0"
dashmap = "6"
base64 = "0.22"
serde_with = "3.4.0"
tokio-util = { version = "0.7.10", features = ["io"] }
bytes = "1.5.0"
rlimit = "0.10.1"
async-stream = "0.3.5"
memmap2 = { version = "0.9.4" }
lru = { version = "0.12.3", optional = true }
mime_guess = { version = "2.0.5", default-features = false }
tokio-socks = "0.5.2"
async-trait = "0.1.81"
async-backtrace = { version = "0.2", optional = true }
notify = { version = "7", optional = true }
walkdir = "2.5.0"
arc-swap = "1.7.1"
[build-dependencies]
anyhow = "1"
[dev-dependencies]
futures = { version = "0.3" }
tracing-subscriber = "0.3"
tokio-test = "0.4"
tempfile = "3"
rand = { version = "0.8", features = ["small_rng"] }