[package]
name = "onebot-api"
version = "1.2.5"
edition = "2024"
authors = ["Ecamika <index@ecamika.dev>"]
description = "An Unofficial SDK for OneBot V11 Protocol"
repository = "https://github.com/Ecamika/onebot-api.git"
homepage = "https://github.com/Ecamika/onebot-api"
license = "MIT"

[dependencies]
onebot-api-macros = { version = "0.1.2", path = "macros" }

#async-stream = "0.3.6"
async-trait = "0.1.89"
futures = "0.3.32"
reqwest = { version = "0.13.2", features = ["json"], optional = true }
axum = { version = "0.8.8", features = ["ws"], optional = true }
tokio = { version = "1.50.0", features = ["macros", "rt-multi-thread", "sync", "time", "net", "io-util"] }
tokio-tungstenite = { version = "0.29.0", optional = true }
url = "2.5.8"
http = "1.4.0"
flume = "0.12.0"
uuid = { version = "1.22.0", features = ["v4"] }
thiserror = "2.0.18"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
strum = { version = "0.28.0", features = ["derive"] }
eventsource-stream = { version = "0.2.3", optional = true }
bytes = "1.11.1"
hmac = { version = "0.13.0", optional = true }
sha1 = { version = "0.11.0", optional = true }
hex = { version = "0.4.3", optional = true }

[features]
websocket = ["tokio-tungstenite"]
websocket-reverse = ["axum"]
http = ["dep:reqwest"]
http-post = ["axum", "hmac", "sha1", "hex"]
sse = ["dep:reqwest", "reqwest/stream", "eventsource-stream"]

combiner = []
quick_operation = []
selector = []

rustls = ["reqwest/rustls", "tokio-tungstenite/rustls-tls-webpki-roots"]
native-tls = ["reqwest/native-tls", "tokio-tungstenite/native-tls"]

full = [
	"websocket",
	"websocket-reverse",
	"http",
	"http-post",
	"sse",
	"combiner",
	"rustls",
	"quick_operation",
	"selector",
]

default = ["full"]
