[package]
name = "agent-client-protocol-http"
version = "0.1.1"
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "HTTP and WebSocket transport for the Agent Client Protocol (ACP)"
keywords = ["acp", "agent", "protocol", "http", "websocket"]
categories = ["development-tools", "web-programming::http-server"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[features]
default = []
client = [
"dep:agent-client-protocol",
"dep:eventsource-stream",
"dep:futures",
"dep:reqwest",
"dep:serde_json",
"dep:thiserror",
"dep:async-tungstenite",
"dep:tokio",
"tokio/rt",
"dep:tracing",
"dep:url",
]
server = [
"dep:agent-client-protocol",
"dep:async-stream",
"dep:axum",
"dep:futures",
"dep:serde_json",
"dep:tokio",
"tokio/macros",
"tokio/rt",
"tokio/sync",
"dep:tower-http",
"dep:tracing",
"dep:uuid",
]
unstable_cancel_request = ["agent-client-protocol?/unstable_cancel_request"]
[dependencies]
agent-client-protocol = { workspace = true, optional = true }
futures = { workspace = true, optional = true }
serde_json = { workspace = true, optional = true }
thiserror = { workspace = true, optional = true }
tokio = { workspace = true, optional = true }
tracing = { workspace = true, optional = true }
async-stream = { workspace = true, optional = true }
axum = { workspace = true, features = ["ws", "macros"], optional = true }
tower-http = { workspace = true, features = ["cors"], optional = true }
uuid = { workspace = true, optional = true }
async-tungstenite = { workspace = true, optional = true }
eventsource-stream = { workspace = true, optional = true }
reqwest = { workspace = true, features = ["stream"], optional = true }
url = { workspace = true, optional = true }
[dev-dependencies]
agent-client-protocol-test.workspace = true
async-stream.workspace = true
axum = { workspace = true, features = ["ws", "macros"] }
tokio = { workspace = true, features = ["macros", "net", "rt", "sync", "time"] }
async-tungstenite.workspace = true
tracing-subscriber.workspace = true
[lints]
workspace = true