[package]
edition = "2024"
name = "fluxdi"
version = "1.2.2"
authors = ["João Pedro Martins <mjoaopedro61@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "FluxDI - Semi-Automatic Dependency Injector"
homepage = "https://github.com/DaiYuANg/fluxdi"
readme = "README.md"
keywords = [
"dependency-injection",
"di",
"fluxdi",
"semi-automatic",
"axum-di",
]
license-file = "LICENSE"
repository = "https://github.com/DaiYuANg/fluxdi"
resolver = "2"
[features]
actix = [
"thread-safe",
"dep:actix-web",
]
async-factory = []
axum = [
"thread-safe",
"dep:axum",
]
debug = []
default = ["debug"]
lifecycle = ["dep:tokio"]
lock-free = [
"thread-safe",
"dep:dashmap",
]
logging = [
"tracing",
"dep:tracing-subscriber",
]
macros = ["dep:fluxdi-macros"]
metrics = []
opentelemetry = [
"tracing",
"dep:opentelemetry",
"dep:tracing-opentelemetry",
"dep:tracing-subscriber",
]
prometheus = ["metrics"]
resource-limit-async = [
"thread-safe",
"async-factory",
"dep:tokio",
]
thread-safe = []
tracing = ["dep:tracing"]
[lib]
name = "fluxdi"
path = "src/lib.rs"
[[test]]
name = "actix_integration"
path = "tests/actix_integration.rs"
[[test]]
name = "graph_tooling"
path = "tests/graph_tooling.rs"
[[test]]
name = "injectable_macro"
path = "tests/injectable_macro.rs"
[[test]]
name = "multi_bindings"
path = "tests/multi_bindings.rs"
[[test]]
name = "named_bindings"
path = "tests/named_bindings.rs"
[[test]]
name = "observability_logging"
path = "tests/observability_logging.rs"
[[test]]
name = "observability_metrics"
path = "tests/observability_metrics.rs"
[[test]]
name = "observability_opentelemetry"
path = "tests/observability_opentelemetry.rs"
[[test]]
name = "observability_tracing"
path = "tests/observability_tracing.rs"
[[test]]
name = "override_provider"
path = "tests/override_provider.rs"
[[test]]
name = "resource_limits"
path = "tests/resource_limits.rs"
[[test]]
name = "scoped_context"
path = "tests/scoped_context.rs"
[[bench]]
name = "injector_baseline"
path = "benches/injector_baseline.rs"
harness = false
[dependencies.actix-web]
version = "4.11.0"
optional = true
[dependencies.axum]
version = "0.8"
optional = true
[dependencies.dashmap]
version = "6.1.0"
optional = true
[dependencies.fluxdi-macros]
version = "1.2.2"
optional = true
[dependencies.futures]
version = "0.3.31"
[dependencies.opentelemetry]
version = "0.29.1"
optional = true
[dependencies.tokio]
version = "1.43.0"
features = [
"sync",
"time",
"rt",
"rt-multi-thread",
]
optional = true
[dependencies.tracing]
version = "0.1.41"
optional = true
[dependencies.tracing-opentelemetry]
version = "0.30.0"
optional = true
[dependencies.tracing-subscriber]
version = "0.3.19"
features = [
"env-filter",
"fmt",
]
optional = true
[dev-dependencies.criterion]
version = "0.5.1"
features = ["html_reports"]
[dev-dependencies.futures]
version = "0.3.31"
[dev-dependencies.tokio]
version = "1.43.0"
features = [
"rt-multi-thread",
"macros",
"time",
]
[dev-dependencies.tracing-subscriber]
version = "0.3.19"