agent-client-protocol-http 1.0.1

HTTP and WebSocket transport for the Agent Client Protocol (ACP)
Documentation
[package]
name = "agent-client-protocol-http"
version = "1.0.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 }

# Server
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 }

# Client
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
tower.workspace = true

[lints]
workspace = true