spikard-http 0.10.2

High-performance HTTP server for Spikard with tower-http middleware stack
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 = "2024"
name = "spikard-http"
version = "0.10.2"
authors = ["Na'aman Hirschfeld <nhirschfeld@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance HTTP server for Spikard with tower-http middleware stack"
homepage = "https://github.com/Goldziher/spikard"
documentation = "https://docs.rs/spikard-http"
readme = "README.md"
keywords = [
    "http",
    "server",
    "axum",
    "tower",
    "middleware",
]
categories = [
    "web-programming::http-server",
    "web-programming",
]
license = "MIT"
repository = "https://github.com/Goldziher/spikard"
resolver = "2"

[features]
default = []
di = ["spikard-core/di"]

[lib]
name = "spikard_http"
path = "src/lib.rs"

[[example]]
name = "sse-notifications"
path = "examples/sse-notifications.rs"

[[example]]
name = "websocket-chat"
path = "examples/websocket-chat.rs"

[[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 = "grpc_bidirectional_streaming"
path = "tests/grpc_bidirectional_streaming.rs"

[[test]]
name = "grpc_client_streaming"
path = "tests/grpc_client_streaming.rs"

[[test]]
name = "grpc_error_handling_test"
path = "tests/grpc_error_handling_test.rs"

[[test]]
name = "grpc_integration_test"
path = "tests/grpc_integration_test.rs"

[[test]]
name = "grpc_metadata_test"
path = "tests/grpc_metadata_test.rs"

[[test]]
name = "grpc_server_integration"
path = "tests/grpc_server_integration.rs"

[[test]]
name = "grpc_server_streaming"
path = "tests/grpc_server_streaming.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"

[dependencies.ahash]
version = "0.8"

[dependencies.anyhow]
version = "1.0"

[dependencies.axum]
version = "0.8"
features = [
    "multipart",
    "ws",
]

[dependencies.axum-test]
version = "18"
features = ["ws"]

[dependencies.base64]
version = "0.22.1"

[dependencies.brotli]
version = "8.0"

[dependencies.bytes]
version = "1.11"

[dependencies.cookie]
version = "0.18"

[dependencies.flate2]
version = "=1.1.5"
features = ["rust_backend"]
default-features = false

[dependencies.futures]
version = "0.3"

[dependencies.futures-util]
version = "0.3"

[dependencies.h2]
version = "0.4"

[dependencies.http-body]
version = "1.0"

[dependencies.http-body-util]
version = "0.1"

[dependencies.jiff]
version = "0.2"

[dependencies.jsonschema]
version = "0.40"
default-features = false

[dependencies.jsonwebtoken]
version = "10.3"
features = [
    "use_pem",
    "rust_crypto",
]

[dependencies.lazy_static]
version = "1.5"

[dependencies.lru]
version = "0.16"

[dependencies.mime]
version = "0.3"

[dependencies.prost]
version = "0.14"

[dependencies.prost-types]
version = "0.14"

[dependencies.regex]
version = "1"

[dependencies.rustc-hash]
version = "2.1"

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"

[dependencies.serde_qs]
version = "0.15"

[dependencies.spikard-core]
version = "0.10.2"

[dependencies.tokio]
version = "1"
features = ["full"]

[dependencies.tokio-stream]
version = "0.1"

[dependencies.tokio-util]
version = "0.7"

[dependencies.tonic]
version = "0.14"
features = [
    "transport",
    "codegen",
    "gzip",
]

[dependencies.tower]
version = "0.5"

[dependencies.tower-http]
version = "0.6.8"
features = [
    "trace",
    "request-id",
    "compression-gzip",
    "compression-br",
    "timeout",
    "limit",
    "fs",
    "set-header",
    "sensitive-headers",
]

[dependencies.tower_governor]
version = "0.8"

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]

[dependencies.url]
version = "2.5"

[dependencies.urlencoding]
version = "2.1"

[dependencies.utoipa]
version = "5"
features = [
    "axum_extras",
    "chrono",
    "uuid",
]

[dependencies.utoipa-redoc]
version = "6"
features = ["axum"]

[dependencies.utoipa-swagger-ui]
version = "9"
features = [
    "axum",
    "vendored",
]

[dependencies.uuid]
version = "1.20"

[dev-dependencies.chrono]
version = "0.4"

[dev-dependencies.doc-comment]
version = "0.3"

[dev-dependencies.tempfile]
version = "3.24"

[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]
level = "allow"
priority = 0
check-cfg = ["cfg(tarpaulin_include)"]