[package] name = "alkhttp" version = "0.1.0" edition = "2021" rust-version = "1.85" license = "MIT OR Apache-2.0" description = "HTTP interface for the alk stack: serves HTTP/1.1 + HTTP/2 on standard ALPNs (with WebSocket upgrade carrying the channels protocol) and hosts the HTTP-backed call-protocol adapters" repository = "https://git.alk.dev/alkdev/alkhttp" keywords = ["http", "websocket", "rpc", "openapi", "mcp"] categories = ["network-programming", "web-programming", "asynchronous"] exclude = [".opencode/", "AGENTS.md", "docs/reviews/", "docs/sdd_process.md", "Cargo.lock"] [lib] name = "alkhttp" [features] default = ["h2", "http1"] mcp = ["dep:rmcp"] wss = ["dep:tokio-tungstenite"] test-support = ["dep:tokio-tungstenite"] h2 = ["dep:hyper", "hyper-util/http2", "hyper/http2"] http1 = ["dep:hyper", "hyper-util/http1", "hyper/http1"] [dependencies] alkcall = "0.1.1" arc-swap = "1" axum = { version = "0.8", features = ["ws"] } hyper = { version = "1", optional = true, features = ["server"] } hyper-util = { version = "0.1", features = ["server", "service", "tokio"] } httpdate = "1" reqwest = { version = "0.13", default-features = false, features = ["json", "stream", "rustls"] } reqwest-middleware = "0.5" reqwest-retry = "0.9" tokio = { version = "1", features = ["full"] } tokio-tungstenite = { version = "0.28", optional = true, default-features = false, features = ["connect", "rustls-tls-webpki-roots", "handshake"] } serde = { version = "1", features = ["derive"] } serde_json = "1" yaml_serde = "0.10" async-trait = "0.1" tracing = "0.1" thiserror = "2" uuid = { version = "1", features = ["v4"] } futures = "0.3" openapiv3 = "2" http = "1" url = "2" bytes = "1" parking_lot = "0.12" rmcp = { version = "1.8", optional = true, default-features = false, features = [ "client", "server", "transport-streamable-http-client-reqwest", "transport-streamable-http-server", ] } [dev-dependencies] http-body-util = "0.1" tower = { version = "0.5", features = ["util"] } tokio-tungstenite = "0.28" [[test]] name = "ws_upgrade_session" required-features = ["test-support"] [[test]] name = "from_mcp_integration" required-features = ["mcp"]