# 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"
rust-version = "1.88"
name = "nestrs"
version = "0.2.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "NestJS-like API framework for Rust on top of Axum and Tower."
homepage = "https://github.com/Joshyahweh/nestrs"
readme = "README.md"
keywords = [
    "axum",
    "tower",
    "nest",
    "di",
    "web",
]
categories = [
    "web-programming",
    "asynchronous",
    "network-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Joshyahweh/nestrs"

[features]
cache-redis = ["dep:redis"]
cookies = ["dep:tower-cookies"]
csrf = [
    "cookies",
    "dep:subtle",
]
database-sqlx = ["dep:sqlx"]
default = []
files = ["dep:tokio-util"]
graphql = ["dep:nestrs-graphql"]
http-client = ["dep:reqwest"]
microservices = [
    "dep:nestrs-microservices",
    "dep:nestrs-events",
]
microservices-grpc = [
    "microservices",
    "nestrs-microservices/grpc",
]
microservices-kafka = [
    "microservices",
    "nestrs-microservices/kafka",
]
microservices-metrics = [
    "microservices",
    "nestrs-microservices/microservice-metrics",
]
microservices-mqtt = [
    "microservices",
    "nestrs-microservices/mqtt",
]
microservices-nats = [
    "microservices",
    "nestrs-microservices/nats",
    "dep:async-nats",
]
microservices-rabbitmq = [
    "microservices",
    "nestrs-microservices/rabbitmq",
]
microservices-redis = [
    "microservices",
    "nestrs-microservices/redis",
    "dep:redis",
]
mongo = ["dep:mongodb"]
mvc = ["dep:minijinja"]
openapi = ["dep:nestrs-openapi"]
otel = [
    "dep:opentelemetry",
    "dep:opentelemetry_sdk",
    "dep:opentelemetry-otlp",
    "dep:tracing-opentelemetry",
]
queues = ["dep:linkme"]
queues-redis = [
    "queues",
    "dep:redis",
]
schedule = [
    "dep:tokio-cron-scheduler",
    "dep:linkme",
]
session = [
    "cookies",
    "dep:tower-sessions",
]
test-hooks = ["nestrs-core/test-hooks"]
ws = ["dep:nestrs-ws"]

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

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

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

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

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

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

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

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

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

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

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

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

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

[[test]]
name = "integration_matrix"
path = "tests/integration_matrix.rs"
required-features = [
    "openapi",
    "csrf",
    "test-hooks",
]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[[bench]]
name = "di_resolution"
path = "benches/di_resolution.rs"
harness = false

[[bench]]
name = "json_validation_hot_path"
path = "benches/json_validation_hot_path.rs"
harness = false

[[bench]]
name = "router_hot_path"
path = "benches/router_hot_path.rs"
harness = false

[[bench]]
name = "router_middleware_stack"
path = "benches/router_middleware_stack.rs"
harness = false

[dependencies.async-nats]
version = "0.47"
optional = true

[dependencies.async-trait]
version = "0.1"

[dependencies.axum]
version = "0.7"
features = ["multipart"]

[dependencies.dotenvy]
version = "0.15.7"

[dependencies.envy]
version = "0.4.2"

[dependencies.linkme]
version = "0.3"
optional = true

[dependencies.metrics]
version = "0.24"

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

[dependencies.minijinja]
version = "2"
features = ["serde"]
optional = true
default-features = false

[dependencies.mongodb]
version = "3"
optional = true

[dependencies.nestrs-core]
version = "0.2.0"

[dependencies.nestrs-events]
version = "0.2.0"
optional = true

[dependencies.nestrs-graphql]
version = "0.2.0"
optional = true

[dependencies.nestrs-macros]
version = "0.2.0"

[dependencies.nestrs-microservices]
version = "0.2.0"
optional = true

[dependencies.nestrs-openapi]
version = "0.2.0"
optional = true

[dependencies.nestrs-ws]
version = "0.2.0"
optional = true

[dependencies.opentelemetry]
version = "0.31.0"
features = ["trace"]
optional = true

[dependencies.opentelemetry-otlp]
version = "0.31.1"
features = [
    "trace",
    "grpc-tonic",
]
optional = true
default-features = false

[dependencies.opentelemetry_sdk]
version = "0.31.0"
features = ["rt-tokio"]
optional = true

[dependencies.redis]
version = "0.29"
features = ["tokio-comp"]
optional = true

[dependencies.reqwest]
version = "0.12"
features = [
    "json",
    "rustls-tls",
]
optional = true
default-features = false

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

[dependencies.serde_json]
version = "1"

[dependencies.sqlx]
version = "0.8"
features = [
    "runtime-tokio",
    "tls-rustls-ring",
    "any",
    "postgres",
    "sqlite",
]
optional = true
default-features = false

[dependencies.subtle]
version = "2.6"
optional = true

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

[dependencies.tokio-cron-scheduler]
version = "0.15.1"
optional = true

[dependencies.tokio-util]
version = "0.7"
features = ["io"]
optional = true

[dependencies.tower]
version = "0.5"
features = [
    "limit",
    "load-shed",
]

[dependencies.tower-cookies]
version = "0.10"
optional = true

[dependencies.tower-http]
version = "0.6"
features = [
    "cors",
    "set-header",
    "limit",
    "request-id",
    "compression-gzip",
    "decompression-gzip",
    "normalize-path",
    "fs",
]

[dependencies.tower-sessions]
version = "0.10"
features = ["memory-store"]
optional = true
default-features = false

[dependencies.tracing]
version = "=0.1.44"

[dependencies.tracing-opentelemetry]
version = "0.32.1"
optional = true
default-features = false

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

[dependencies.validator]
version = "0.20"
features = ["derive"]

[dev-dependencies.async-graphql]
version = "=7.0.17"

[dev-dependencies.criterion]
version = "0.5"
features = ["async_tokio"]

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

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

[dev-dependencies.serial_test]
version = "3"

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