[package]
name = "docspec-http"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
readme = "README.md"
description = "HTTP API server for DocSpec document conversion"
keywords = ["document", "conversion", "streaming", "http", "api"]
categories = ["network-programming", "web-programming"]
[package.metadata.dist]
dist = false
[features]
default = ["sentry", "posthog"]
sentry = ["dep:sentry"]
posthog = ["dep:posthog-rs", "dep:uuid"]
[dependencies]
axum = "0.8"
clap = { version = "4", features = ["derive"] }
tokio = { version = "1", features = [
"rt-multi-thread",
"macros",
"signal",
"net",
] }
tower = "0.5"
tower-http = { version = "0.7", features = [
"trace",
"request-id",
"util",
"set-header",
] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["fmt"] }
mime = "0.3"
metrics = "0.24"
metrics-exporter-prometheus = { version = "0.18", default-features = false }
thiserror = "2"
sentry = { version = "0.48", optional = true, default-features = false, features = [
"backtrace",
"contexts",
"debug-images",
"panic",
"tower",
"tower-http",
"tracing",
"reqwest",
"rustls",
] }
posthog-rs = { version = "0.17.0", optional = true, default-features = false, features = [
"async-client",
"error-tracking",
] }
uuid = { version = "1", features = ["v4"], optional = true }
docspec-core = { workspace = true }
docspec-json = { workspace = true }
docspec = { workspace = true, features = ["full"] }
[dev-dependencies]
tower = { version = "0.5", features = ["util"] }
serde_json = "1"
reqwest = { version = "0.13", features = ["blocking", "json"] }
uuid = "1"
docspec-test-utils = { workspace = true }
wiremock = "0.6"
sentry = { version = "0.48", default-features = false, features = [
"backtrace",
"contexts",
"debug-images",
"panic",
"tower",
"tower-http",
"tracing",
"reqwest",
"rustls",
"test",
] }
[lints]
workspace = true