# 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"
name = "docspec-http"
version = "1.10.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "HTTP API server for DocSpec document conversion"
readme = "README.md"
keywords = [
    "document",
    "conversion",
    "streaming",
    "http",
    "api",
]
categories = [
    "network-programming",
    "web-programming",
]
license = "MIT"
repository = "https://github.com/docspec/docspec"

[package.metadata.dist]
dist = false

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

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

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

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

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

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

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

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

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

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

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

[dependencies.axum]
version = "0.8"

[dependencies.clap]
version = "4"
features = ["derive"]

[dependencies.docspec]
version = "1.10.0"
features = ["full"]

[dependencies.docspec-core]
version = "1.10.0"

[dependencies.docspec-json]
version = "1.10.0"

[dependencies.metrics]
version = "0.24"

[dependencies.metrics-exporter-prometheus]
version = "0.18"
default-features = false

[dependencies.mime]
version = "0.3"

[dependencies.sentry]
version = "0.48"
features = [
    "backtrace",
    "contexts",
    "panic",
    "tower",
    "tower-http",
    "tracing",
    "reqwest",
    "rustls",
]
default-features = false

[dependencies.thiserror]
version = "2"

[dependencies.tokio]
version = "1"
features = [
    "rt-multi-thread",
    "macros",
    "signal",
    "net",
]

[dependencies.tower]
version = "0.5"

[dependencies.tower-http]
version = "0.6"
features = [
    "trace",
    "request-id",
    "util",
    "set-header",
]

[dependencies.tracing]
version = "0.1"

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

[dev-dependencies.reqwest]
version = "0.13"
features = [
    "blocking",
    "json",
]

[dev-dependencies.sentry]
version = "0.48"
features = [
    "backtrace",
    "contexts",
    "panic",
    "tower",
    "tower-http",
    "tracing",
    "reqwest",
    "rustls",
    "test",
]
default-features = false

[dev-dependencies.serde_json]
version = "1"

[dev-dependencies.tower]
version = "0.5"
features = ["util"]

[dev-dependencies.uuid]
version = "1"

[lints.clippy]
absolute_paths = "allow"
alloc_instead_of_core = "warn"
allow_attributes = "allow"
allow_attributes_without_reason = "allow"
arbitrary_source_item_ordering = "allow"
assertions_on_result_states = "allow"
big_endian_bytes = "allow"
blanket_clippy_restriction_lints = "allow"
cfg_not_test = "allow"
cognitive_complexity = "deny"
decimal_literal_representation = "allow"
default_numeric_fallback = "allow"
error_impl_error = "allow"
exhaustive_enums = "deny"
exhaustive_structs = "allow"
expect_used = "deny"
fn_params_excessive_bools = "allow"
host_endian_bytes = "allow"
implicit_return = "allow"
integer_division_remainder_used = "allow"
large_enum_variant = "allow"
let_underscore_untyped = "allow"
little_endian_bytes = "allow"
min_ident_chars = "allow"
missing_docs_in_private_items = "allow"
missing_trait_methods = "allow"
mod_module_files = "allow"
module_name_repetitions = "allow"
multiple_crate_versions = "allow"
multiple_inherent_impl = "allow"
non_ascii_literal = "allow"
option_if_let_else = "deny"
partial_pub_fields = "allow"
pattern_type_mismatch = "allow"
print_stderr = "allow"
pub_use = "allow"
pub_with_shorthand = "allow"
question_mark_used = "allow"
redundant_pub_crate = "allow"
semicolon_inside_block = "allow"
shadow_same = "allow"
single_call_fn = "allow"
single_char_lifetime_names = "allow"
std_instead_of_alloc = "allow"
std_instead_of_core = "warn"
str_to_string = "allow"
unnecessary_wraps = "allow"
unwrap_used = "deny"
use_self = "deny"
wildcard_enum_match_arm = "allow"

[lints.clippy.cargo]
level = "deny"
priority = -1

[lints.clippy.complexity]
level = "deny"
priority = -1

[lints.clippy.pedantic]
level = "deny"
priority = -1

[lints.clippy.perf]
level = "deny"
priority = -1

[lints.clippy.restriction]
level = "deny"
priority = -1

[lints.clippy.style]
level = "deny"
priority = -1

[lints.clippy.suspicious]
level = "deny"
priority = -1

[lints.rust]
dead_code = "deny"
missing_docs = "deny"
unsafe_code = "forbid"
