- document every public-API item across 18 files (openapi_spec model, HttpAuthScheme/HttpServiceConfig, HttpClientBuildError + SharedHttpClient accessors, RetryAfterMiddleware, GatewayDispatch, gateway error mapping, CallRequest/SchemaQuery/SubscribeStream, HttpAdapter + ALPNs + builders, decoy/healthz/state, WsSessions/WsPumps, from_openapi/from_jsonschema/from_mcp/from_wss/to_mcp, lib.rs module docs) - enforcement: #![deny(missing_docs)] at crate root — stronger than CI rustdocflags (every build incl. cfg(test), where rustdoc misses the test-support module docs) - HY-10 (opportunistic): all 8 docs.rs/alkhttp placeholder ADR links + the one relative ../docs link converted to plain text; the 10 pre-existing private/redundant intra-doc-link warnings fixed — RUSTDOCFLAGS="-D warnings" cargo doc is fully clean - HY-11 decision: docs/ + tasks/ excluded from the published package (contributor-facing design/process material; ADR references degrade to plain text uniformly). cargo publish --dry-run: 38 files, ~889 KiB, zero docs/ or tasks/ entries - HY-04 decision: keep + document — frame_channel0_chunk's unwrap is on serializing the acyclic EventEnvelope (unreachable failure); # Panics on it and the adjacent WsClient senders state the contract Verified: cargo test (299 + 5 TLS), --all-features (370 + suites), --no-default-features (299), clippy --all-targets -D warnings (default + all-features), fmt --check, cargo doc -D warnings clean, cargo publish --dry-run --allow-dirty clean. Tasks: review-001-missing-docs-sweep (final pending task; 42/42)
82 lines
2.7 KiB
TOML
82 lines
2.7 KiB
TOML
[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"] |