[package]
categories = ["api-bindings", "web-programming"]
description = "A Matrix client library."
homepage = "https://www.ruma.io/"
keywords = ["matrix", "chat", "messaging", "ruma"]
license = "MIT"
name = "ruma-client"
readme = "README.md"
repository = "https://github.com/ruma/ruma"
version = "0.12.0"
edition = "2021"
rust-version = { workspace = true }

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[features]
client-api = ["dep:ruma-client-api"]

# HTTP clients
hyper = ["dep:hyper"]
hyper-native-tls = ["hyper", "dep:hyper-tls"]
hyper-rustls = ["hyper", "dep:hyper-rustls"]
isahc = ["dep:isahc", "futures-lite"]
reqwest = ["dep:reqwest"]
reqwest-native-tls = ["reqwest", "reqwest?/native-tls"]
reqwest-native-tls-alpn = ["reqwest", "reqwest?/native-tls-alpn"]
reqwest-native-tls-vendored = ["reqwest", "reqwest?/native-tls-vendored"]
reqwest-rustls-manual-roots = ["reqwest", "reqwest?/rustls-tls-manual-roots"]
reqwest-rustls-webpki-roots = ["reqwest", "reqwest?/rustls-tls-webpki-roots"]
reqwest-rustls-native-roots = ["reqwest", "reqwest?/rustls-tls-native-roots"]

[dependencies]
assign = { workspace = true }
async-stream = "0.3.0"
async-trait = "0.1.50"
bytes = "1.0.1"
futures-core = "0.3.8"
futures-lite = { version = "1.11.3", optional = true }
http = { workspace = true }
hyper = { version = "0.14.2", optional = true, features = ["client", "http1", "http2", "tcp"] }
hyper-rustls = { version = "0.24.0", optional = true, default-features = false }
hyper-tls = { version = "0.5.0", optional = true }
isahc = { version = "1.3.1", optional = true }
reqwest = { version = "0.11.4", optional = true, default-features = false }
ruma-client-api = { workspace = true, optional = true, features = ["client"] }
ruma-common = { workspace = true, features = ["api"] }
serde = { workspace = true }
serde_html_form = { workspace = true }
serde_json = { workspace = true }
tracing = { version = "0.1.30", default-features = false, features = ["std"] }

[dev-dependencies]
ruma-client-api = { workspace = true, features = ["client"] }
tokio-stream = "0.1.8"
