[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)"]