[package]
edition = "2021"
name = "derust"
version = "0.3.13"
authors = ["Deroldo <diogoderoldo@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Easy way to start your Rust asynchronous application server using Tokio and Axum frameworks."
homepage = "https://github.com/deroldo/derust"
readme = "README.md"
keywords = [
"rust-boot",
"tokio-boot",
"axum-boot",
"spring-boot",
"config",
]
categories = ["web-programming"]
license = "MIT"
repository = "https://github.com/deroldo/derust"
[features]
aws = [
"dep:aws-sdk-sqs",
"dep:aws-sdk-sns",
"dep:aws-sdk-secretsmanager",
"dep:aws-config",
]
default = ["http_server"]
env = [
"dep:thiserror",
"dep:serde",
"dep:dotenv",
"dep:config",
]
env_from_secrets_manager = ["aws"]
growthbook = ["dep:growthbook-rust-sdk"]
http_client = [
"dep:reqwest",
"dep:reqwest-middleware",
"dep:reqwest-tracing",
"dep:opentelemetry",
"dep:tracing-opentelemetry",
"dep:opentelemetry-http",
]
http_server = [
"env",
"dep:axum",
"dep:tower-http",
"dep:bytes",
"dep:lazy_static",
"dep:async-trait",
"dep:serde",
"dep:serde_json",
"dep:tracing",
"dep:uuid",
"dep:tokio",
"dep:axum-tracing-opentelemetry",
"dep:opentelemetry-otlp",
"dep:init-tracing-opentelemetry",
"dep:tracing-subscriber",
"dep:wg",
"dep:chrono",
"dep:regex",
"dep:openssl",
"dep:flate2",
"dep:tower-layer",
]
outbox = [
"dep:outbox-pattern-processor",
"dep:sqlx",
"dep:wg",
]
postgres = [
"dep:sqlx",
"dep:serde",
]
prometheus = [
"dep:regex",
"dep:tracing",
"dep:lazy_static",
"dep:async-trait",
"dep:tokio",
"dep:cadence",
"dep:metrics-exporter-prometheus",
"dep:metrics",
"dep:http-body-util",
"dep:hyper",
]
start_test = []
statsd = [
"dep:regex",
"dep:tracing",
"dep:lazy_static",
"dep:async-trait",
"dep:tokio",
"dep:cadence",
"dep:metrics-exporter-statsd",
"dep:metrics",
]
[lib]
name = "derust"
path = "src/lib.rs"
[dependencies.async-trait]
version = "0.1.88"
optional = true
[dependencies.aws-config]
version = "1.8.1"
features = [
"behavior-version-latest",
"behavior-version-latest",
]
optional = true
[dependencies.aws-sdk-secretsmanager]
version = "1.78.0"
optional = true
[dependencies.aws-sdk-sns]
version = "1.75.0"
optional = true
[dependencies.aws-sdk-sqs]
version = "1.74.0"
optional = true
[dependencies.axum]
version = "0.8.4"
features = [
"macros",
"tokio",
"macros",
"tokio",
]
optional = true
default-features = true
[dependencies.axum-tracing-opentelemetry]
version = "0.29.0"
features = ["tracing_level_info"]
optional = true
[dependencies.bytes]
version = "1.10.1"
optional = true
[dependencies.cadence]
version = "1.6.0"
optional = true
[dependencies.chrono]
version = "0.4.41"
features = [
"serde",
"serde",
]
optional = true
[dependencies.config]
version = "0.15.11"
optional = true
[dependencies.dotenv]
version = "0.15.0"
optional = true
[dependencies.flate2]
version = "1.1.2"
optional = true
[dependencies.growthbook-rust-sdk]
version = "1.1.0"
optional = true
[dependencies.http-body-util]
version = "0.1.3"
optional = true
[dependencies.hyper]
version = "1.6.0"
optional = true
[dependencies.init-tracing-opentelemetry]
version = "0.29.0"
features = [
"otlp",
"opentelemetry-otlp",
"tracer",
"tracing_subscriber_ext",
"otlp",
"opentelemetry-otlp",
"tracer",
"tracing_subscriber_ext",
]
optional = true
[dependencies.lazy_static]
version = "1.5.0"
optional = true
[dependencies.metrics]
version = "0.24.2"
optional = true
[dependencies.metrics-exporter-prometheus]
version = "0.17.2"
optional = true
[dependencies.metrics-exporter-statsd]
version = "0.9.0"
optional = true
[dependencies.openssl]
version = "0.10.73"
features = [
"vendored",
"vendored",
]
optional = true
[dependencies.opentelemetry]
version = "0.30.0"
optional = true
[dependencies.opentelemetry-http]
version = "0.30.0"
features = [
"reqwest",
"reqwest",
]
optional = true
[dependencies.opentelemetry-otlp]
version = "0.30.0"
features = [
"http",
"logs",
"reqwest-client",
"tracing",
"serde",
"integration-testing",
"reqwest",
"metrics",
"reqwest-rustls",
"http-proto",
"tls",
"http",
"logs",
"reqwest-client",
"tracing",
"serde",
"integration-testing",
"reqwest",
"metrics",
]
optional = true
default-features = false
[dependencies.outbox-pattern-processor]
version = "0.3.6"
optional = true
[dependencies.regex]
version = "1.11.1"
optional = true
[dependencies.reqwest]
version = "0.12.22"
features = [
"http2",
"default-tls",
"default",
"json",
"gzip",
"http2",
"default-tls",
"default",
"json",
"gzip",
]
optional = true
[dependencies.reqwest-middleware]
version = "0.4.2"
features = [
"json",
"http2",
"rustls-tls",
"json",
"http2",
"rustls-tls",
]
optional = true
[dependencies.reqwest-tracing]
version = "0.5.8"
features = [
"opentelemetry_0_26",
"opentelemetry_0_26",
]
optional = true
[dependencies.serde]
version = "1.0.219"
features = [
"derive",
"derive",
]
optional = true
[dependencies.serde_json]
version = "1.0.140"
optional = true
[dependencies.sqlx]
version = "0.8.6"
features = [
"json",
"chrono",
"bigdecimal",
"postgres",
"uuid",
"rust_decimal",
"migrate",
"runtime-tokio",
"json",
"chrono",
"postgres",
"uuid",
"runtime-tokio",
]
optional = true
[dependencies.thiserror]
version = "2.0.12"
optional = true
[dependencies.tokio]
version = "1.46.0"
features = [
"full",
"full",
]
optional = true
[dependencies.tower-http]
version = "0.6.6"
features = [
"catch-panic",
"timeout",
"trace",
"request-id",
"util",
"sensitive-headers",
"compression-gzip",
"catch-panic",
"timeout",
"trace",
"request-id",
"util",
"sensitive-headers",
"compression-gzip",
]
optional = true
[dependencies.tower-layer]
version = "0.3.3"
optional = true
[dependencies.tracing]
version = "0.1.41"
features = [
"attributes",
"tracing-attributes",
"attributes",
"tracing-attributes",
]
optional = true
[dependencies.tracing-opentelemetry]
version = "0.31.0"
optional = true
[dependencies.tracing-subscriber]
version = "0.3.19"
features = [
"env-filter",
"fmt",
"std",
]
optional = true
[dependencies.uuid]
version = "1.17.0"
features = [
"v7",
"fast-rng",
"serde",
"v7",
"fast-rng",
"serde",
]
optional = true
[dependencies.wg]
version = "0.9.2"
optional = true