[package]
edition = "2021"
rust-version = "1.85"
name = "alkhttp"
version = "0.2.0"
build = false
exclude = [
".opencode/",
"AGENTS.md",
"docs/",
"tasks/",
"scripts/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
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"
readme = "README.md"
keywords = [
"http",
"websocket",
"rpc",
"openapi",
"mcp",
]
categories = [
"network-programming",
"web-programming",
"asynchronous",
]
license = "MIT OR Apache-2.0"
repository = "https://git.alk.dev/alkdev/alkhttp"
[features]
client = [
"dep:arc-swap",
"dep:httpdate",
"dep:percent-encoding",
"dep:reqwest",
"dep:reqwest-middleware",
"dep:reqwest-retry",
"dep:url",
"openapi",
]
default = [
"server",
"client",
"h2",
"http1",
]
h2 = [
"server",
"dep:hyper",
"hyper-util/http2",
"hyper/http2",
]
http1 = [
"server",
"dep:hyper",
"hyper-util/http1",
"hyper/http1",
]
mcp = ["dep:rmcp"]
openapi = ["dep:yaml_serde"]
server = [
"dep:axum",
"dep:hyper",
"dep:hyper-util",
"dep:uuid",
"openapi",
"http1",
]
test-support = [
"server",
"dep:tokio-tungstenite",
]
wss = ["dep:tokio-tungstenite"]
[lib]
name = "alkhttp"
path = "src/lib.rs"
[[test]]
name = "client_config_reload"
path = "tests/client_config_reload.rs"
required-features = ["client"]
[[test]]
name = "client_tls"
path = "tests/client_tls.rs"
required-features = ["client"]
[[test]]
name = "from_mcp_integration"
path = "tests/from_mcp_integration.rs"
required-features = [
"server",
"client",
"mcp",
]
[[test]]
name = "full_surface"
path = "tests/full_surface.rs"
required-features = [
"server",
"client",
"openapi",
"mcp",
"test-support",
]
[[test]]
name = "retry_after_budget"
path = "tests/retry_after_budget.rs"
required-features = ["client"]
[[test]]
name = "retry_policy_wire"
path = "tests/retry_policy_wire.rs"
required-features = ["client"]
[[test]]
name = "ws_overlay_ops"
path = "tests/ws_overlay_ops.rs"
required-features = ["test-support"]
[[test]]
name = "ws_upgrade_session"
path = "tests/ws_upgrade_session.rs"
required-features = ["test-support"]
[dependencies.alkcall]
version = "0.5"
features = ["gateway"]
[dependencies.arc-swap]
version = "1"
optional = true
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
features = ["ws"]
optional = true
[dependencies.bytes]
version = "1"
[dependencies.futures]
version = "0.3"
[dependencies.http]
version = "1"
[dependencies.httpdate]
version = "1"
optional = true
[dependencies.hyper]
version = "1"
features = ["server"]
optional = true
[dependencies.hyper-util]
version = "0.1"
features = [
"server",
"service",
"tokio",
]
optional = true
[dependencies.jsonschema]
version = "0.46"
default-features = false
[dependencies.parking_lot]
version = "0.12"
[dependencies.percent-encoding]
version = "2"
optional = true
[dependencies.reqwest]
version = "0.13"
features = [
"json",
"stream",
"rustls",
]
optional = true
default-features = false
[dependencies.reqwest-middleware]
version = "0.5"
optional = true
[dependencies.reqwest-retry]
version = "0.9"
optional = true
[dependencies.rmcp]
version = "1.8"
features = [
"client",
"server",
"transport-streamable-http-client-reqwest",
"transport-streamable-http-server",
]
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"io-util",
"net",
"fs",
"time",
"sync",
]
[dependencies.tokio-tungstenite]
version = "0.29"
features = [
"connect",
"rustls-tls-webpki-roots",
"handshake",
]
optional = true
default-features = false
[dependencies.tracing]
version = "0.1"
[dependencies.url]
version = "2"
optional = true
[dependencies.uuid]
version = "1"
features = ["v4"]
optional = true
[dependencies.yaml_serde]
version = "0.10"
optional = true
[dev-dependencies.http-body-util]
version = "0.1"
[dev-dependencies.openapiv3]
version = "2"
[dev-dependencies.rcgen]
version = "0.14"
[dev-dependencies.rustls]
version = "0.23"
features = [
"aws_lc_rs",
"std",
"tls12",
]
default-features = false
[dev-dependencies.rustls-pki-types]
version = "1"
[dev-dependencies.tokio-rustls]
version = "0.26"
[dev-dependencies.tokio-tungstenite]
version = "0.29"
features = ["connect"]
default-features = false
[dev-dependencies.tower]
version = "0.5"
features = ["util"]
[dev-dependencies.uuid]
version = "1"
features = ["v4"]