[package]
edition = "2021"
rust-version = "1.88"
name = "nestrs"
version = "0.3.8"
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 = "cross_cutting_ordering_contract"
path = "tests/cross_cutting_ordering_contract.rs"
[[test]]
name = "csrf_middleware"
path = "tests/csrf_middleware.rs"
[[test]]
name = "dto_unknown_fields"
path = "tests/dto_unknown_fields.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.3.8"
[dependencies.nestrs-events]
version = "0.3.8"
optional = true
[dependencies.nestrs-graphql]
version = "0.3.8"
optional = true
[dependencies.nestrs-macros]
version = "0.3.8"
[dependencies.nestrs-microservices]
version = "0.3.8"
optional = true
[dependencies.nestrs-openapi]
version = "0.3.8"
optional = true
[dependencies.nestrs-ws]
version = "0.3.8"
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"]