alkhttp 0.4.1

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
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.88"
name = "alkhttp"
version = "0.4.1"
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.7"
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"]