[package]
name = "lavalink-rs"
version = "0.14.1"
edition = "2021"
authors = ["vicky5124 <vickyf5124@gmail.com>"]
license = "MPL-2.0"
description = "Lavalink API wrapper for discord audio playing"
readme = "README.md"
homepage = "https://gitlab.com/vicky5124/lavalink-rs/"
repository =  "https://gitlab.com/vicky5124/lavalink-rs/"
keywords = ["lavalink", "discord", "serenity", "twilight", "songbird"]
categories = ["multimedia"]
documentation = "https://docs.rs/lavalink-rs"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[lib]
name = "lavalink_rs"
crate-type = ["cdylib", "rlib"]

[workspace]
exclude = ["examples", "docs"]

[features]
default = ["tungstenite-rustls-native-roots", "macros"]

songbird = ["songbird-dep"]
serenity = ["serenity-dep"]
twilight = ["twilight-model"]

macros = ["macros-dep"]

_rustls-native-roots = ["hyper-rustls", "hyper-rustls/native-tokio", "_rustls-tls"]
_rustls-webpki-roots = ["hyper-rustls", "hyper-rustls/webpki-tokio", "_rustls-tls"]
_rustls-tls = []
_native-tls = ["hyper-tls"]

_tungstenite = []
_websockets = []

tungstenite-rustls-native-roots = ["tokio-tungstenite/rustls-tls-native-roots", "_rustls-native-roots", "_tungstenite"]
tungstenite-rustls-webpki-roots = ["tokio-tungstenite/rustls-tls-webpki-roots", "_rustls-webpki-roots", "_tungstenite"]
tungstenite-native-tls = ["tokio-tungstenite/native-tls", "_native-tls", "_tungstenite"]

websockets-rustls-native-roots = ["tokio-websockets/rustls-native-roots", "_rustls-native-roots", "_websockets"]
websockets-rustls-webpki-roots = ["tokio-websockets/rustls-webpki-roots", "_rustls-webpki-roots", "_websockets"]
websockets-native-tls = ["tokio-websockets/native-tls", "_native-tls", "_websockets"]

python = ["pyo3", "pyo3-async-runtimes", "pyo3-log", "pythonize", "log", "paste", "macro_rules_attribute", "parking_lot"]

[package.metadata.docs.rs]
features = ["tungstenite-rustls-webpki-roots", "twilight", "serenity", "songbird", "macros", "python"]

[dependencies]
arc-swap = "1"
serde_json = "1"
dashmap = "6"
http = "1"
tracing = "0.1"
futures = "0.3"
oneshot = "0.1"
serde_qs = "0.13"
http-body-util = "0.1"
bytes = "1"
urlencoding = "2"

[dependencies.tokio-tungstenite]
optional = true
version = "0.26"

[dependencies.tokio-websockets]
optional = true
version = "0.11"
features = ["client", "fastrand", "sha1_smol", "simd"]

[dependencies.tokio]
version = "1"
features = ["sync", "rt", "net", "time"]

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

[dependencies.hyper]
version = "1"
default-features = false
features = ["client", "http1", "http2"]

[dependencies.hyper-util]
version = "0.1"
default-features = false
features = ["tokio", "client", "client-legacy", "http1", "http2"]

[dependencies.hyper-tls]
version = "0.6"
default-features = false
features = ["alpn"]
optional = true

[dependencies.hyper-rustls]
version = "0.27"
default-features = false
features = ["http1", "http2", "tls12", "ring"]
optional = true

[dependencies.songbird-dep]
package = "songbird"
version = "0.4"
default-features = false
optional = true

[dependencies.serenity-dep]
package = "serenity"
version = "0.12"
default-features = false
optional = true

[dependencies.twilight-model]
version = "0.16"
optional = true

[dependencies.pyo3]
version = "0.23"
features = ["extension-module", "py-clone"]
optional = true

[dependencies.pythonize]
version = "0.23"
optional = true

[dependencies.pyo3-async-runtimes]
version = "0.23"
features = ["attributes", "tokio-runtime"]
optional = true

[dependencies.pyo3-log]
version = "0.12"
optional = true

[dependencies.log]
version = "0.4"
optional = true

[dependencies.parking_lot]
version = "0.12"
optional = true
#features = ["deadlock_detection"]

[dependencies.paste]
version = "1"
optional = true

[dependencies.macro_rules_attribute]
version = "0.2"
optional = true

[dependencies.macros-dep]
package = "lavalink_rs_macros"
version = "0.2"
#path = "./lavalink_rs_macros"
optional = true


[build-dependencies]
version_check = "0.9"
