[dependencies.anyhow]
version = "1.0"
[dependencies.axum]
features = ["multipart", "ws"]
version = "0.8"
[dependencies.axum-test]
features = ["ws"]
version = "18"
[dependencies.base64]
version = "0.22.1"
[dependencies.brotli]
version = "8.0"
[dependencies.bytes]
version = "1.11"
[dependencies.cookie]
version = "0.18"
[dependencies.flate2]
default-features = false
features = ["rust_backend"]
version = "=1.1.5"
[dependencies.futures]
version = "0.3"
[dependencies.futures-util]
version = "0.3"
[dependencies.http-body]
version = "1.0"
[dependencies.http-body-util]
version = "0.1"
[dependencies.jiff]
version = "0.2"
[dependencies.jsonschema]
default-features = false
version = "0.37"
[dependencies.jsonwebtoken]
features = ["use_pem", "rust_crypto"]
version = "10.2"
[dependencies.lazy_static]
version = "1.5"
[dependencies.lru]
version = "0.16"
[dependencies.mime]
version = "0.3"
[dependencies.regex]
version = "1"
[dependencies.rustc-hash]
version = "2.1"
[dependencies.serde]
features = ["derive"]
version = "1.0"
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_qs]
version = "0.15"
[dependencies.spikard-core]
version = "0.5.0"
[dependencies.tokio]
features = ["full"]
version = "1"
[dependencies.tokio-util]
version = "0.7"
[dependencies.tower]
version = "0.5"
[dependencies.tower-http]
features = ["trace", "request-id", "compression-gzip", "compression-br", "timeout", "limit", "fs", "set-header", "sensitive-headers"]
version = "0.6.8"
[dependencies.tower_governor]
version = "0.8"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
features = ["env-filter"]
version = "0.3"
[dependencies.url]
version = "2.5"
[dependencies.urlencoding]
version = "2.1"
[dependencies.utoipa]
features = ["axum_extras", "chrono", "uuid"]
version = "5"
[dependencies.utoipa-redoc]
features = ["axum"]
version = "6"
[dependencies.utoipa-swagger-ui]
features = ["axum", "vendored"]
version = "9"
[dependencies.uuid]
version = "1.19"
[dev-dependencies.chrono]
version = "0.4"
[dev-dependencies.doc-comment]
version = "0.3"
[dev-dependencies.tempfile]
version = "3.23"
[[example]]
name = "sse-notifications"
path = "examples/sse-notifications.rs"
[[example]]
name = "websocket-chat"
path = "examples/websocket-chat.rs"
[features]
default = []
di = ["spikard-core/di"]
[lib]
name = "spikard_http"
path = "src/lib.rs"
[lints.clippy.all]
level = "deny"
priority = 0
[lints.clippy.nursery]
level = "deny"
priority = 0
[lints.clippy.pedantic]
level = "deny"
priority = 0
[lints.rust.unexpected_cfgs]
check-cfg = ["cfg(tarpaulin_include)"]
level = "allow"
priority = 0
[package]
authors = ["Na'aman Hirschfeld <nhirschfeld@gmail.com>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["web-programming::http-server", "web-programming"]
description = "High-performance HTTP server for Spikard with tower-http middleware stack"
documentation = "https://docs.rs/spikard-http"
edition = "2024"
homepage = "https://github.com/Goldziher/spikard"
keywords = ["http", "server", "axum", "tower", "middleware"]
license = "MIT"
name = "spikard-http"
readme = "README.md"
repository = "https://github.com/Goldziher/spikard"
resolver = "2"
version = "0.5.0"
[[test]]
name = "auth_integration"
path = "tests/auth_integration.rs"
[[test]]
name = "background_behavior"
path = "tests/background_behavior.rs"
[[test]]
name = "di_handler_error_responses"
path = "tests/di_handler_error_responses.rs"
[[test]]
name = "di_integration"
path = "tests/di_integration.rs"
[[test]]
name = "doc_snippets"
path = "tests/doc_snippets.rs"
[[test]]
name = "lifecycle_execution"
path = "tests/lifecycle_execution.rs"
[[test]]
name = "middleware_stack_integration"
path = "tests/middleware_stack_integration.rs"
[[test]]
name = "multipart_behavior"
path = "tests/multipart_behavior.rs"
[[test]]
name = "request_extraction_full"
path = "tests/request_extraction_full.rs"
[[test]]
name = "server_auth_middleware_behavior"
path = "tests/server_auth_middleware_behavior.rs"
[[test]]
name = "server_config_builder"
path = "tests/server_config_builder.rs"
[[test]]
name = "server_configured_router_behavior"
path = "tests/server_configured_router_behavior.rs"
[[test]]
name = "server_cors_preflight"
path = "tests/server_cors_preflight.rs"
[[test]]
name = "server_handler_wrappers"
path = "tests/server_handler_wrappers.rs"
[[test]]
name = "server_method_router_additional_behavior"
path = "tests/server_method_router_additional_behavior.rs"
[[test]]
name = "server_method_router_coverage"
path = "tests/server_method_router_coverage.rs"
[[test]]
name = "server_middleware_behavior"
path = "tests/server_middleware_behavior.rs"
[[test]]
name = "server_middleware_branches"
path = "tests/server_middleware_branches.rs"
[[test]]
name = "server_openapi_jsonrpc_static"
path = "tests/server_openapi_jsonrpc_static.rs"
[[test]]
name = "server_router_behavior"
path = "tests/server_router_behavior.rs"
[[test]]
name = "sse_behavior"
path = "tests/sse_behavior.rs"
[[test]]
name = "sse_full_behavior"
path = "tests/sse_full_behavior.rs"
[[test]]
name = "sse_handler_behavior"
path = "tests/sse_handler_behavior.rs"
[[test]]
name = "test_client_requests"
path = "tests/test_client_requests.rs"
[[test]]
name = "testing_helpers"
path = "tests/testing_helpers.rs"
[[test]]
name = "testing_module_coverage"
path = "tests/testing_module_coverage.rs"
[[test]]
name = "urlencoded_content_type"
path = "tests/urlencoded_content_type.rs"
[[test]]
name = "websocket_behavior"
path = "tests/websocket_behavior.rs"
[[test]]
name = "websocket_full_behavior"
path = "tests/websocket_full_behavior.rs"
[[test]]
name = "websocket_integration"
path = "tests/websocket_integration.rs"