[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/", "tasks/", "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 = ["macros", "rt-multi-thread", "io-util", "net", "fs", "time", "sync"] } tokio-tungstenite = { version = "0.29", 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" http = "1" http-body-util = "0.1" url = "2" percent-encoding = "2" jsonschema = { version = "0.46", default-features = false } 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 = { version = "0.29", default-features = false, features = ["connect"] } openapiv3 = "2" rcgen = "0.14" tokio-rustls = "0.26" rustls = { version = "0.23", default-features = false, features = ["aws_lc_rs", "std", "tls12"] } rustls-pki-types = "1" uuid = { version = "1", features = ["v4"] } [[test]] name = "ws_upgrade_session" required-features = ["test-support"] [[test]] name = "ws_overlay_ops" required-features = ["test-support"] [[test]] name = "from_mcp_integration" required-features = ["mcp"] [[test]] name = "full_surface" required-features = ["mcp", "test-support"]