[package]
name = "alknet-call"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "Structured RPC over QUIC on ALPN `alknet/call`: operations, streaming subscriptions, service discovery"
repository.workspace = true

[lib]
name = "alknet_call"

[features]
default = ["quinn"]
quinn = ["dep:quinn", "dep:rustls", "alknet-core/quinn"]

[dependencies]
alknet-core = { path = "../alknet-core" }
irpc = { workspace = true }
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
async-trait = "0.1"
tracing = "0.1"
thiserror = "2"
uuid = { version = "1", features = ["v4"] }
futures = "0.3"
parking_lot = "0.12"
quinn = { version = "0.11", optional = true }
rustls = { version = "0.23", optional = true }

[dev-dependencies]
rcgen = "0.13"
rustls-pemfile = "2"